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

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

Audience

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

דוגמה מהירה

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

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", שמכיל אובייקטים עם מידע על כל משפחת גופנים.

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

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

בעזרת שילוב המידע לכל משפחה, תוכלו ליצור בקלות בקשה ל-Fonts API. לדוגמה, בהנחה שיש לנו הפניה לאובייקט המשפחתי של Pro 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: מיון בסדר אלפביתי
  • תאריך: מיון הרשימה לפי תאריך ההוספה (הגופנים האחרונים שנוספו או עודכנו תחילה)
  • פופולריות: מיון הרשימה לפי פופולריות (המשפחה הפופולרית ביותר ראשונה)
  • סגנון: מיון הרשימה לפי מספר הסגנונות הזמינים (משפחה עם רוב הסגנונות קודם)
  • טרנדים: מיון הרשימה לפי משפחות שזוהתה בהן עלייה בשימוש (המשפחה מקבלת הכי הרבה צמיחה)

סינון

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

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

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

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

https://www.googleapis.com/webfonts/v1/webfonts?capaibility=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.