Entwickler-API

Die Developer API bietet Zugriff auf die Metadaten aller Schriftfamilien, die von Google Fonts bereitgestellt werden. So können Apps Google Fonts nach den verfügbaren Schriftfamilien abfragen. Die REST API liefert Daten im JSON-Format, die die Stile und Scripts (in Google Fonts als Subsets bezeichnet) in jeder Familie enthalten. Die API kann die Liste der Familien alphabetisch, nach dem Datum des Hinzufügens, nach der Anzahl der Stile, nach dem Trend oder nach 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

Wenn Sie die dynamische Liste der vom Google Fonts-Dienst angebotenen Schriftarten abrufen möchten, senden Sie die folgende Anfrage:

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

Ein Beispiel für das Ergebnis könnte so aussehen:

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

Anwendung für Google identifizieren

Ihre Anwendung muss sich jedes Mal identifizieren, wenn sie eine Anfrage an die Google Fonts Developer API sendet. Dazu 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 namens „items“, das Objekte mit Informationen zu den einzelnen Schriftfamilien enthält.

Ein Familienobjekt besteht aus den folgenden Feldern:

  • kind: Die Art des Objekts, ein Webfont-Objekt
  • family: Der Name der Familie.
  • subsets: Eine Liste der von der Familie unterstützten Scripts
  • menu: Eine URL zur Teilmenge der Familie, die nur den Namen der Familie enthält.
  • Varianten: Die verschiedenen Stile, die für die Produktfamilie verfügbar sind
  • version: Die Version der Schriftfamilie.
  • axes: Achsenbereich, nur auf Anfrage(siehe unten) für variable Schriftarten.
  • lastModified: Das Datum (Format „TT.MM.JJJJ“), an dem die Schriftfamilie zuletzt geändert wurde.
  • Dateien: Die Schriftfamiliendateien (mit allen unterstützten Schriftsystemen) für jede der verfügbaren Varianten.

Durch die Kombination der Informationen für jede Familie lässt sich ganz einfach eine Fonts API-Anfrage erstellen. Angenommen, wir haben einen Verweis auf das Familienobjekt für Anonymous 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 keiner bestimmten Reihenfolge zurückgegeben. Sie können die Liste jedoch mit dem Sortierparameter sortieren:

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

Die möglichen Sortierwerte sind:

  • alpha: Die Liste wird alphabetisch sortiert.
  • date: Die Liste wird nach dem Datum sortiert, an dem die Schriftart hinzugefügt oder aktualisiert wurde (die neueste Schriftart zuerst).
  • popularity: Die Liste nach Beliebtheit sortieren (die beliebteste Familie zuerst)
  • style: Die Liste nach der Anzahl der verfügbaren Stile sortieren (Familie mit den meisten Stilen zuerst)
  • angesagt: Die Liste wird nach Familien sortiert, bei denen die Nutzung gestiegen ist (die Familie mit dem größten Anstieg zuerst).

Filtern

Eine bestimmte Familie abfragen

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

Alle Familien, die die griechische Untergruppe unterstützen

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

Nach Schriftkategorie filtern

https://www.googleapis.com/webfonts/v1/webfonts?category=category_name

Optimierung

Zum Abrufen von Schriftartdateien, die im WOFF2-Format komprimiert sind

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

Variable Schriftarten

Variable Schriftarten bieten einen kontinuierlichen Stilbereich. Standardmäßig wird für variable Schriftarten, die an Standardpositionen instanziiert werden, eine Kombination aus Dateien mit statischen Schriftarten zurückgegeben. Wenn capability=VF festgelegt ist, wird die variable Schriftdatei anstelle der statischen Dateien zusammen mit den Metadaten für den verfügbaren Achsenbereich zurückgegeben. Beispiel:

https://www.googleapis.com/webfonts/v1/webfonts?capability=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 API-Schlüssel für Entwickler.

family: Name einer Schriftfamilie.

subset: Name einer Schriftschnitt-Subset.

category: serif | sans-serif | monospace | display | handwriting

capability: VF | WOFF2.

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