ממשק API למפתחים

ה-API למפתחים נותן גישה למטא-נתונים לכל המשפחות של Google Fonts. היא מאפשרת לאפליקציות לשלוח שאילתות לגופנים ב-Google Fonts כדי למצוא את משפחות הגופנים הזמינות. ה-API ל-REST מספק נתונים בפורמט JSON שכולל את הסגנונות והסקריפטים (שנקראים קבוצות משנה ב-Google Fonts) בכל משפחה. ה-API יכול למיין את רשימת המשפחות לפי סדר אלפביתי, לפי תאריך ההוספה, לפי מספר הסגנונות, לפי מגמות או לפי פופולריות.

קהל

המסמך הזה מיועד למפתחי אתרים ואפליקציות. כדי להשתמש ב-Developer API, נדרש ידע ב-JavaScript.

דוגמה קצרה

כדי לאחזר את רשימת הגופנים הדינמית שמוצעת על ידי שירות Google Fonts, צריך לשלוח את הבקשה הבאה:

https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY

דגימה של התוצאה תיראה כך:

{
 "kind": "webfonts#webfontList",
 "items": [
  [...]
  {
    "family": "Anonymous Pro",
    "variants": [
      "regular",
      "italic",
      "700",
      "700italic"
    ],
    "subsets": [
      "cyrillic",
      "greek",
      "latin",
      "latin-ext"
    ],
    "version": "v21",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pLlw89CH98Ko.ttf",
      "italic": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2fp2a15UIB7Un-bOeISG3pHl428AP44Kqr2Q.ttf",
      "700": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2cp2a15UIB7Un-bOeISG3pFuAT0CnW7KOywKo.ttf",
      "700italic": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2ap2a15UIB7Un-bOeISG3pHl4OTCzc6IG30KqB9Q.ttf"
    },
    "category": "monospace",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pHl028A.ttf"
  },
  {
    "family": "Antic",
    "variants": [
      "regular"
    ],
    "subsets": [
      "latin"
    ],
    "version": "v19",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/antic/v19/TuGfUVB8XY5DRaZLodgzydtk.ttf"
    },
    "category": "sans-serif",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/antic/v19/TuGfUVB8XY5DRZZKq9w.ttf"
  },
  [...]
 ]
}

זיהוי הבקשה שלך ב-Google

האפליקציה שלכם צריכה לזהות את עצמה בכל פעם שהיא שולחת בקשה ל-Google Fonts Developer API, על ידי הוספת מפתח API לכל בקשה.

קבלת מפתח API ושימוש בו

לקבלת מפתח

לחלופין, אפשר ליצור אחד בדף פרטי הכניסה.

אחרי שיצרתם מפתח API, האפליקציה יכולה לצרף את פרמטר השאילתה key=yourAPIKey לכל כתובות ה-URL של הבקשות.

מפתח ה-API בטוח להטמעה בכתובות URL; אין צורך בקידוד.

פרטים

תגובת JSON (ראו דוגמה למעלה) מורכבת ממערך בשם "items" שמכיל אובייקטים עם מידע על כל משפחת גופנים.

אובייקט משפחתי מורכב מהשדות הבאים:

  • type: סוג האובייקט, אובייקט Webfont
  • משפחה: שם המשפחה
  • קבוצות משנה: רשימה של סקריפטים שנתמכים על ידי הקבוצה המשפחתית
  • תפריט: כתובת URL לקבוצת המשנה המשפחתית שכוללת רק את שם המשפחה.
  • וריאציות: הסגנונות השונים שזמינים לכל המשפחה
  • version: הגרסה של משפחת הגופנים.
  • צירים: טווח צירים, הצגה רק לפי בקשה(ראו בהמשך) לגופנים משתנים.
  • Lastשונה: התאריך (בפורמט "yyyy-MM-dd") שבו משפחת הגופנים שונתה בפעם האחרונה.
  • files: קובצי משפחת הגופנים (עם כל הסקריפטים הנתמכים) של כל אחת מהווריאציות הזמינות.

שילוב המידע של כל משפחה מאפשר ליצור בקלות בקשה ל-Fonts API. לדוגמה, בהנחה שיש לנו הפניה לאובייקט המשפחתי של אנונימיזציה מסוג Pro:

[...]

var apiUrl = [];
apiUrl.push('https://fonts.googleapis.com/css?family=');
apiUrl.push(anonymousPro.family.replace(/ /g, '+'));
if (contains('italic', anonymousPro.variants)) {
  apiUrl.push(':');
  apiUrl.push('italic');
}
if (contains('greek', anonymousPro.subsets)) {
  apiUrl.push('&subset=');
  apiUrl.push('greek');
}

// url: 'https://fonts.googleapis.com/css?family=Anonymous+Pro:italic&subset=greek'
var url = apiUrl.join('');

[...]

מיון

כברירת מחדל, רשימת המשפחות מוחזרת ללא סדר מסוים. עם זאת, אפשר למיין את הרשימה באמצעות פרמטר המיון:

https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity

ערכי המיון האפשריים הם:

  • alpha: מיון הרשימה לפי סדר אלפביתי
  • תאריך: מיון הרשימה לפי תאריך ההוספה (הגופן האחרון שנוסף או עודכן ראשון)
  • פופולריות: מיון הרשימה לפי פופולריות (קודם כל עם המשפחה הפופולרית ביותר)
  • style: מיון הרשימה לפי מספר הסגנונות הזמינים (משפחה עם רוב הסגנונות ראשונות)
  • מגמה: מיון הרשימה לפי משפחות שצפו בצמיחה בשימוש (במשפחה רואים את הגידול המשמעותי ביותר תחילה)

סינון

שליחת שאילתה לגבי משפחה ספציפית

https://www.googleapis.com/webfonts/v1/webfonts?family=family_name

כל המשפחות שתומכות בקבוצת משנה יוונית

https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name

אופטימיזציה

לאחזור קובצי גופן דחוסים בפורמט woff2

https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2

גופנים משתנים

גופנים משתנים מציעים טווחים רציפים של סגנונות. כברירת מחדל, המערכת מחזירה שילוב של קובצי גופנים סטטיים עבור גופנים משתנים שנוצרים במיקומים רגילים. אם המדיניות capability=VF מוגדרת, קובץ הגופן של המשתנים מוחזר במקום קבצים סטטיים יחד עם המטא-נתונים הזמינים של טווח הצירים. דוגמה לדוגמה:

https://www.googleapis.com/webfonts/v1/webfonts?capability=VF

תשובה לדוגמה:

{
 "kind": "webfonts#webfontList",
 "items": [
  [...]
  {
    "family": "Noto Sans Display",
    "variants": [
      "regular",
      "italic"
    ],
    "subsets": [
      "cyrillic",
      "cyrillic-ext",
      "greek",
      "greek-ext",
      "latin",
      "latin-ext",
      "vietnamese"
    ],
    "version": "v20",
    "lastModified": "2022-09-22",
    "files": {
      "regular": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLplK4fy6r6tOBEJg0IAKzqdFZVZxokvfn_BDLxR.ttf",
      "italic": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLpjK4fy6r6tOBEJg0IAKzqdFZVZxrktdHvjCaxRgew.ttf"
    },
    "category": "sans-serif",
    "kind": "webfonts#webfont",
    "menu": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLpbK4fy6r6tOBEJg0IAKzqdFZVZxpMkXJMhnB9XjO1o90LuV-PT4Doq_AKp_3cKZTCa3g.ttf",
    "axes": [
      {
        "tag": "wdth",
        "start": 62.5,
        "end": 100
      },
      {
        "tag": "wght",
        "start": 100,
        "end": 900
      }
    ]
  },
  [...]
 ]
}

מפרט כתובות URL ל-API

webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]

your_key: מפתח ה-API למפתחים.

family: שם של משפחת גופנים.

subset: השם של קבוצת משנה של גופנים.

capability: VF | WOFF2.

sort: alpha | date | popularity | style | trending.