Die Developer API bietet Zugriff auf die Metadaten für alle Schriftfamilien, die von Google Fonts bereitgestellt werden. Damit können Apps Google Fonts nach den verfügbaren Schriftfamilien abfragen. Die REST API liefert Daten im JSON-Format, das die Stile und Skripts (in Google Fonts als Teilmengen bezeichnet) in jeder Schriftfamilie enthält. Die API kann die Liste der Schriftfamilien alphabetisch, nach Hinzufügedatum, nach Anzahl der Stile, nach Trend oder nach 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 sieht so aus:
{ "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 gegenüber Google identifizieren
Ihre Anwendung muss sich bei jeder Anfrage an die Google Fonts Developer API identifizieren, indem sie jeder Anfrage einen API-Schlüssel beifügt.
API-Schlüssel erhalten und nutzen
Schlüssel anfordernAlternativ 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 jeder Schriftfamilie enthält.
Ein Familienobjekt besteht aus den folgenden Feldern:
- kind: Die Art des Objekts, ein Webfont-Objekt
- family: Der Name der Familie
- Untergruppen: Eine Liste der von der Schriftart unterstützten Schriftsysteme
- menu: Eine URL für die Teilmenge der Familie, die nur den Namen der Familie enthält.
- Varianten: Die verschiedenen für die Schriftfamilie verfügbaren Stile
- version: Die Version der Schriftfamilie.
- Achsen: Achsenbereich, nur auf Anfrage für Schriftarten mit variablen Achsen vorhanden (siehe unten).
- lastModified: Das Datum (Format „yyyy-MM-dd“), an dem die Schriftfamilie zuletzt geändert wurde.
- files: Die Schriftfamilien-Dateien (mit allen unterstützten Schriftsystemen) für jede der verfügbaren Varianten.
- color_capabilities: Die von dieser Familie unterstützten Farbformate (falls vorhanden)
- Tags: Die Tags, die für den gesamten Designspace dieser Schriftfamilie gelten. Nur auf Anfrage verfügbar (siehe unten).
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. Es ist jedoch möglich, die Liste mit dem Parameter „sort“ zu sortieren:
https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity
Mögliche Sortierwerte:
- alpha: Sortiert die Liste alphabetisch.
- „Datum“: Die Liste wird nach dem Datum sortiert, an dem die Schriftart hinzugefügt wurde. Die zuletzt hinzugefügten oder aktualisierten Schriftarten werden zuerst angezeigt.
- Beliebtheit: Sortiert die Liste nach Beliebtheit (beliebteste Familie zuerst).
- style: Sortiert die Liste nach der Anzahl der verfügbaren Schriftschnitte (Schriftfamilie mit den meisten Schriftschnitten zuerst).
- trending: Sortiert die Liste nach Familien, deren Nutzung zunimmt (Familie mit dem größten Wachstum zuerst).
Filtern
Bestimmte Familie abfragen
https://www.googleapis.com/webfonts/v1/webfonts?family=family_name
Alle Familien, die den griechischen Zeichensatz unterstützen
https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name
Nach Schriftartkategorie 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 Bereich von Stilen. Standardmäßig wird eine Kombination aus statischen Schriftartdateien für variable Schriftarten zurückgegeben, die an Standardpositionen instanziiert werden.
Wenn capability=VF
festgelegt ist, wird die Datei für die variable Schriftart anstelle von 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 } ] }, [...] ] }
Tags
Wenn capability=FAMILY_TAGS
festgelegt ist, wird das Feld „Tags“ mit allen Tags gefüllt, die sich auf den gesamten Designspace der Schriftfamilie beziehen.
Beispiel:
{ "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", "tags": [ { "name": "/Expressive/Business", "weight": 58 }, { "tag": "/Sans/Humanist", "weight": 100, } ] }, [...] ] }
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 eines Schriftart-Subsets.
category
: serif
| sans-serif
| monospace
| display
| handwriting
capability
: VF
| WOFF2
.
sort
: alpha
| date
| popularity
| style
| trending
.