Entwickler-API

Die Developer API gewährt Zugriff auf die Metadaten für alle Familien, die von Google Fonts bereitgestellt werden. Apps können damit die verfügbaren Schriftfamilien von Google Fonts abfragen. Die REST API liefert Daten im JSON-Format, die die Stile und Skripts (in Google Fonts Teilmengen) in jeder Familie enthalten. Die API kann die Liste der Familien alphabetisch, nach dem Datum des Hinzufügens, der Anzahl der Stile, des Trends oder der Beliebtheit sortieren.

Zielgruppe

Dieses Dokument richtet sich an Web- und Anwendungsentwickler. Für die Verwendung der Developer API sind JavaScript-Kenntnisse erforderlich.

Kurzes Beispiel

Senden Sie die folgende Anfrage, um die dynamische Liste der vom Google Fonts-Dienst angebotenen Schriftarten abzurufen:

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

Hier ein Beispiel für das Ergebnis:

{
 "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"
  },
  [...]
 ]
}

Ihre App gegenüber Google identifizieren

Ihre Anwendung muss sich jedes Mal identifizieren, wenn eine Anfrage an die Google Fonts Developer API gesendet wird. Dabei muss bei jeder Anfrage ein API-Schlüssel angegeben werden.

API-Schlüssel erhalten und nutzen

Schlüssel anfordern

Alternativ können Sie auf der Seite "Anmeldedaten" einen Schlüssel erstellen.

Nachdem Sie einen API-Schlüssel haben, kann Ihre Anwendung den Abfrageparameter key=yourAPIKey an alle Anfrage-URLs anhängen.

Der API-Schlüssel lässt sich sicher in URLs einbetten. Eine Codierung ist nicht notwendig.

Details

Die JSON-Antwort (siehe Beispiel oben) besteht aus einem Array mit dem Namen „items“, das Objekte mit Informationen zu jeder Schriftfamilie enthält.

Ein Familienobjekt besteht aus den folgenden Feldern:

  • kind: Die Art des Objekts, ein Webfont-Objekt
  • family: Nachname
  • Untergruppen: Eine Liste der von der Familie unterstützten Skripts
  • „Menü“: Eine URL zur Untermenge der Familiengruppe, die nur den Namen der Familie abdeckt.
  • Varianten: Die verschiedenen Stile für die Familie
  • version: Die Schriftfamilienversion.
  • Achsen: Achsenbereich; nur auf Anfrage vorhanden(siehe unten) für variable Schriftarten
  • lastModified: Datum, an dem die Schriftfamilie zum letzten Mal geändert wurde (Format „yyyy-MM-dd“)
  • files: Die Schriftartenfamiliendateien (mit allen unterstützten Skripts) für jede der verfügbaren Varianten.

Wenn Sie die Informationen für jede Familie kombinieren, können Sie ganz einfach eine Fonts API-Anfrage erstellen. Angenommen, wir haben einen Verweis auf das Familienobjekt für Anonym 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('');

[...]

Sortieren

Die Liste der Familien wird standardmäßig in einer bestimmten Reihenfolge zurückgegeben. Es ist jedoch möglich, die Liste mithilfe des Sortierparameters zu sortieren:

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

Folgende Sortierungswerte sind möglich:

  • Alpha: Liste alphabetisch sortieren
  • Datum: Die Liste wird nach dem Datum sortiert, an dem sie hinzugefügt wurden. Die neueste Schriftart wurde hinzugefügt oder aktualisiert.
  • Beliebtheit: Liste nach Beliebtheit sortieren (beliebteste App zuerst)
  • Stil: Liste nach der Anzahl der verfügbaren Stile sortieren (Familie mit den meisten Stilen)
  • Trend: Sortieren Sie die Liste nach Familien, deren Nutzung am stärksten wächst.

Wird gefiltert

Bestimmte Familie abfragen

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

Alle Familien, die griechische Untergruppen unterstützen

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

Optimierung

Zum Abrufen von Schriftarten, die im Woff2-Format komprimiert sind

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

Variable Schriftarten

Variable Schriftarten bieten einen kontinuierlichen Bereich von Stilen. Standardmäßig wird für variable Schriftarten, die an Standardpositionen instanziiert sind, eine Kombination aus Dateien für statische Schriftarten zurückgegeben. Wenn capaibility=VF festgelegt ist, wird die Variable für die Schriftart und nicht die für statische sowie die verfügbaren Metadaten für den Achsenbereich zurückgegeben. Beispielbeispiel:

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

Beispielantwort:

{
 "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
      }
    ]
  },
  [...]
 ]
}

API-URL-Spezifikation

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

your_key: Ihr Entwickler-API-Schlüssel.

family: Name einer Schriftfamilie.

subset: Name einer Schriftartenuntergruppe.

capability: VF | WOFF2.

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