API разработчика предоставляет доступ к метаданным для всех семейств, обслуживаемых Google Fonts. Это позволяет приложениям запрашивать у Google Fonts доступные семейства шрифтов. REST API предоставляет данные в формате JSON, который включает стили и скрипты (называемые подмножествами в Google Fonts) в каждом семействе. API может сортировать список семейств в алфавитном порядке, по дате добавления, по количеству стилей, по тренду или по популярности.
Аудитория
Этот документ предназначен для разработчиков веб-сайтов и приложений. Для использования API разработчика требуется знание JavaScript.
Быстрый пример
Чтобы получить динамический список шрифтов, предлагаемых сервисом Google Fonts, отправьте следующий запрос:
https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY
Примерный результат будет выглядеть так:
{ "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" }, [...] ] }
Идентификация вашего приложения в Google
Ваше приложение должно идентифицировать себя каждый раз, когда оно отправляет запрос к API разработчика Google Fonts, включая ключ API в каждый запрос.
Получение и использование ключа API
Получить ключИли создайте его на странице «Учетные данные» .
Получив ключ API, ваше приложение может добавить параметр запроса key= yourAPIKey
ко всем URL-адресам запроса.
Ключ API можно безопасно встраивать в URL-адреса; ему не нужна никакая кодировка.
Подробности
Ответ JSON (см. пример выше) состоит из массива с именем «items», который содержит объекты с информацией о каждом семействе шрифтов.
Семейный объект состоит из следующих полей:
- kind: тип объекта, объект веб-шрифта.
- семья: Имя семьи
- подмножества: список сценариев, поддерживаемых семейством.
- меню: URL-адрес подмножества семейства, включающий только имя семейства.
- варианты: различные стили, доступные для всей семьи.
- версия: версия семейства шрифтов.
- оси: диапазон осей. Присутствует только по запросу (см. ниже) для переменных шрифтов.
- LastModified: дата (формат «гггг-ММ-дд»), когда семейство шрифтов было изменено в последний раз.
- файлы: файлы семейства шрифтов (со всеми поддерживаемыми сценариями) для каждого из доступных вариантов.
Объединив информацию для каждого семейства, можно легко создать запрос к API шрифтов. Например, предположим, что у нас есть ссылка на объект семейства для 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(''); [...]
Сортировка
По умолчанию список семейств возвращается в произвольном порядке. Однако можно отсортировать список, используя параметр sort:
https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity
Возможные значения сортировки:
- альфа: отсортировать список по алфавиту.
- дата: сортировка списка по дате добавления (сначала добавлен или обновлен самый последний шрифт).
- популярность: сортировка списка по популярности (сначала самая популярная семья)
- стиль: сортировка списка по количеству доступных стилей (сначала семейство с большинством стилей).
- Тенденции: отсортируйте список по семьям, в которых наблюдается рост использования (сначала семьи, в которых наблюдается наибольший рост).
Фильтрация
Запросить конкретную семью
https://www.googleapis.com/webfonts/v1/webfonts?family=family_name
Все семьи, поддерживающие греческое подмножество
https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name
Оптимизация
Для получения файлов шрифтов, сжатых в формате woff2.
https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2
Переменные шрифты
Вариативные шрифты предлагают непрерывный диапазон стилей. По умолчанию для переменных шрифтов, созданных в стандартных позициях, возвращается комбинация файлов статических шрифтов. Если установлена capability=VF
, вместо статических файлов возвращается файл переменного шрифта вместе с метаданными доступного диапазона осей. пример примера:
https://www.googleapis.com/webfonts/v1/webfonts?capability=VF
Пример ответа:
{ "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 } ] }, [...] ] }
Спецификация URL-адреса API
webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]
your_key
: ваш ключ API разработчика.
family
: название семейства шрифтов.
subset
: Имя подмножества шрифта.
capability
: VF
| WOFF2
.
sort
: alpha
| date
| popularity
| style
| trending
.