Entwickler-API

Die Developer API gewährt Zugriff auf die Metadaten für alle von Google Fonts bereitgestellten Familien. So können Anwendungen Google Fonts nach den verfügbaren Schriftfamilien abfragen. Die REST API stellt Daten im JSON-Format bereit, das die Stile und Skripts in jeder Familie (in Google Fonts als Teilmengen bezeichnet) enthält. Die API kann die Liste der Familien alphabetisch, nach Hinzufügungsdatum, Anzahl der Stile, Trend oder 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 vom Google Fonts-Dienst angebotene dynamische Liste der Schriftarten abzurufen:

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

Ein Beispiel für das Ergebnis würde 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"
  },
  [...]
 ]
}

Identifizierung Ihrer Anwendung bei Google

Ihre Anwendung muss sich jedes Mal identifizieren, wenn sie eine Anfrage an die Google Fonts Developer API sendet. Dazu müssen Sie für jede Anfrage einen API-Schlüssel angeben.

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)
  • Familie: der Name der Familie
  • Teilmenges: Eine Liste der Skripts, die von der Familie unterstützt werden
  • Menü: Eine URL zu der Untergruppe von Familiengruppen, die nur den Namen der Familie umfasst.
  • Varianten: die verschiedenen Stile, die für die Produktfamilie verfügbar sind
  • version: Die Version der Schriftfamilie.
  • Achsen: Achsenbereich; nur auf Anfrage vorhanden(siehe unten) für variable Schriftarten.
  • lastModified: Das Datum im Format "yyyy-MM-dd", an dem die Schriftfamilie zuletzt geändert wurde.
  • -Dateien: Die Schriftfamiliendateien (mit allen unterstützten Skripts) für jede der verfügbaren Varianten.

Durch die Kombination der Informationen für jede Familie ist es einfach, eine Fonts API-Anfrage zu 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. Es ist jedoch möglich, die Liste mithilfe des Sortierparameters zu sortieren:

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

Folgende Sortierwerte sind möglich:

  • Alpha: Liste alphabetisch sortieren
  • date: Liste nach Datum sortieren (neueste hinzugefügt oder aktualisiert)
  • Beliebtheit: Liste nach Beliebtheit sortieren (beliebteste Familie zuerst)
  • style: Liste nach Anzahl der verfügbaren Stile sortieren (Familie mit den meisten Stilen zuerst)
  • Trends: Die Liste nach Familien sortieren, deren Nutzung wächst (die Familie verzeichnet das größte Wachstum zuerst)

Wird gefiltert

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

Optimierung

Zum Abrufen von im WOFF2-Format komprimierte Schriftartdateien

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

Variable Schriftarten

Variable Schriftarten bieten eine durchgängige Auswahl an Stilen. Standardmäßig wird für variable Schriftarten, die an Standardpositionen instanziiert sind, eine Kombination aus statischen Schriftartdateien zurückgegeben. Wenn capability=VF festgelegt ist, wird zusammen mit den verfügbaren Metadaten für den Achsenbereich die Variable Schriftartdatei anstelle einer statischen Schriftart 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 Entwickler-API-Schlüssel.

family: Name einer Schriftfamilie.

subset: Name einer Schriftart-Teilmenge.

capability: VF | WOFF2.

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