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

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

קהל

המסמך הזה מיועד למפתחי אתרים ואפליקציות. באמצעות כדי להשתמש ב-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 ושימוש בו

לקבלת מפתח

אפשר גם ליצור כרטיס בדף פרטי כניסה.

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

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

פרטים

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

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

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

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

[...]

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

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

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