Interfejs API dla programistów

Interfejs Developer API zapewnia dostęp do metadanych wszystkich obsługiwanych rodzin w Google Fonts. Umożliwia aplikacjom wysyłanie zapytań Czcionki Google dla dostępnych rodzin czcionek. Interfejs API REST dostarcza dane w formacie JSON, który obejmuje style i skrypty (nazywanych 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 według popularności.

Odbiorcy

Ten dokument jest przeznaczony dla programistów stron internetowych i aplikacji. Korzystanie z Interfejs Developer API wymaga znajomości języka 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 będzie 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 dla Google

Aplikacja musi identyfikować się za każdym razem, gdy wysyła żądanie do interfejs Google Fonts Developer API, dodając klucz interfejsu API do każdego z nich użytkownika.

Uzyskiwanie i używanie klucza interfejsu API

Kup klucz

Możesz też utworzyć je na stronie Dane logowania.

Gdy uzyskasz klucz interfejsu API, aplikacja może dołączać parametr zapytania key=yourAPIKey do wszystkich adresów URL żą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óry zawiera obiekty z informacjami o poszczególnych rodzinach czcionek.

Obiekt rodziny składa się z tych pól:

  • rodzaju: rodzaj obiektu, obiekt czcionki internetowej;
  • rodzina: nazwa rodziny;
  • podzbiory: lista skryptów obsługiwanych przez rodzinę,
  • menu: adres URL do podzbioru rodziny obejmującego tylko nazwę rodziny.
  • warianty: różne style dostępne dla rodziny.
  • version: wersja rodziny czcionek.
  • osie: zakres osi; prezentowany tylko na żądanie(patrz poniżej) w przypadku czcionek zmiennych.
  • lastModify: data (w formacie „rrrr-MM-dd”) data modyfikacji rodziny czcionek dla po raz ostatni.
  • pliki: pliki rodziny czcionek (ze wszystkimi obsługiwanymi skryptami) dla każdego dostępnych wariantów.

Łącząc informacje dotyczące każdej rodziny, można łatwo utworzyć interfejs Fonts API. użytkownika. Zakładając na przykład, że mamy odniesienie do obiektu rodzinnego Anonimowy:

[...]

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

Lista rodzin jest domyślnie zwracana w żadnej kolejności. Jest można ją jednak posortować przy użyciu parametru sort:

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

Możliwe wartości sortowania:

  • alfa: alfabetyczne sortowanie listy
  • data: sortowanie listy według daty dodania (czcionka, która została dodana lub zaktualizowana jako ostatnia)
  • popularność: sortowanie listy według popularności (najpierw najpopularniejsze rodziny).
  • styl: sortowanie listy według liczby dostępnych stylów (rodzina z największą liczbą stylów) )
  • trendy: posortuj listę według rodzin, w których rośnie intensywność korzystania z tej usługi (rodzina widzi najpierw największe wzrosty)

Filtrowanie

Zapytanie dotyczące konkretnej rodziny

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

Wszystkie rodziny wspierające podgrupę grecką

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

Optymalizacja

Do pobierania plików czcionek skompresowanych w formacie woff2

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

Czcionki zmienne

Czcionki zmiennoprzecinkowe umożliwiają stosowanie ciągłych zakresów stylów. Domyślnie będzie to kombinacja pliki czcionek statycznych są zwracane w przypadku czcionek zmiennych w wystąpieniu standardowym pozycji. Jeśli skonfigurowano ustawienie capability=VF, zwracany jest plik czcionki zmiennej zamiast statycznego wraz z dostępnymi metadanymi zakresów osi. przykładowy 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: klucz interfejsu API dewelopera.

family: nazwa rodziny czcionek.

subset: nazwa podzbioru czcionek.

capability: VF | WOFF2

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