Interfejs API dla deweloperów zapewnia dostęp do metadanych wszystkich rodzin obsługiwanych przez Google Fonts. Umożliwia aplikacjom wysyłanie zapytań do Google Fonts dotyczących dostępnych rodzin czcionek. Interfejs REST API dostarcza dane w formacie JSON, które obejmują style i skrypty (nazywane podzbiorami w Google Fonts) w każdej rodzinie. Interfejs API może sortować listę rodzin alfabetycznie, według daty dodania, liczby stylów, trendu lub popularności.
Odbiorcy
Ten dokument jest przeznaczony dla programistów aplikacji i stron internetowych. Korzystanie z interfejsu Developer API wymaga znajomości JavaScript.
Krótki przykład
Aby pobrać dynamiczną listę czcionek oferowanych przez usługę Google Fonts, wyślij to żądanie:
https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY
Przykładowy wynik wygląda tak:
{ "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" }, [...] ] }
Identyfikowanie aplikacji w Google
Aplikacja musi się identyfikować za każdym razem, gdy wysyła żądanie do interfejsu Google Fonts Developer API, dołączając do każdego żądania klucz interfejsu API.
Uzyskiwanie i używanie klucza interfejsu API
Możesz też utworzyć konto na stronie Dane logowania.
Gdy uzyskasz klucz interfejsu API, Twoja aplikacja będzie mogła dołączać parametry zapytania key=yourAPIKey
do adresów URL wszystkich żądań.
Klucz interfejsu API można bezpiecznie umieszczać w adresach URL, więc nie trzeba go kodować.
Szczegóły
Odpowiedź JSON (patrz przykład powyżej) składa się z tablicy o nazwie „items”, która zawiera obiekty z informacjami o każdej rodzinie czcionek.
Obiekt family składa się z tych pól:
- kind: rodzaj obiektu, obiekt czcionki internetowej
- family: nazwa rodziny;
- subsets: lista skryptów obsługiwanych przez rodzinę.
- menu: adres URL do podzbioru rodziny obejmujący tylko nazwę rodziny.
- variants: różne style dostępne dla rodziny.
- version: wersja rodziny czcionek.
- axes: zakres osi, obecny tylko na żądanie(patrz poniżej) w przypadku czcionek zmiennych.
- lastModified: data (w formacie „rrrr-MM-dd”) ostatniej modyfikacji rodziny czcionek.
- pliki: pliki rodziny czcionek (ze wszystkimi obsługiwanymi pismami) dla każdego z dostępnych wariantów.
Połączenie informacji o każdej rodzinie ułatwia tworzenie żądania interfejsu Fonts API. Załóżmy na przykład, że mamy odwołanie do obiektu family w przypadku 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(''); [...]
Sortowanie
Domyślnie lista rodzin jest zwracana w dowolnej kolejności. Można jednak posortować listę za pomocą parametru sortowania:
https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity
Możliwe wartości sortowania:
- alpha: sortowanie listy alfabetycznie
- date: sortowanie listy według daty dodania (najpierw najnowszy lub zaktualizowany czcionka);
- popularity: sortowanie listy według popularności (najpierw najpopularniejsza rodzina)
- style: sortowanie listy według liczby dostępnych stylów (rodzina z największą liczbą stylów na początku);
- na czasie: sortowanie listy według wzrostu liczby rodzin (najpierw rodziny, w których liczba rodzin rośnie najszybciej);
Filtrowanie
Wysyłanie zapytania do konkretnej grupy rodzinnej
https://www.googleapis.com/webfonts/v1/webfonts?family=family_name
Wszystkie rodziny, które obsługują podzbiór greckiego
https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name
Filtrowanie według kategorii czcionek
https://www.googleapis.com/webfonts/v1/webfonts?category=category_name
Optymalizacja
Aby pobrać pliki czcionek skompresowane w formacie woff2
https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2
Czcionki zmienne
Czcionki zmienne oferują ciągłe zakresy stylów. Domyślnie w przypadku czcionek zmiennych tworzonych w standardowych pozycjach zwracane jest połączenie plików czcionek statycznych.
Jeśli ustawiona jest opcja capability=VF
, zamiast statycznych zwracany jest plik czcionki zmiennej wraz z dostępnymi metadanymi zakresu osi.
Przykład:
https://www.googleapis.com/webfonts/v1/webfonts?capability=VF
Przykładowa odpowiedź:
{ "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 } ] }, [...] ] }
Specyfikacja adresu URL interfejsu API
webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]
your_key
: Twój klucz API dla programistów.
family
: nazwa rodziny czcionek.
subset
: nazwa podzbioru czcionek.
category
: serif
| sans-serif
| monospace
| display
| handwriting
capability
: VF
| WOFF2
.
sort
: alpha
| date
| popularity
| style
| trending
.