API разработчика предоставляет доступ к метаданным для всех семейств, обслуживаемых Google Fonts. Это позволяет приложениям запрашивать Google Fonts для доступных семейств шрифтов. REST API предоставляет данные в формате JSON, которые включают стили и скрипты (называемые подмножествами в Google Fonts) в каждом семействе. API может сортировать список семейств в алфавитном порядке, по дате добавления, по количеству стилей, по тренду или по популярности.
Аудитория
Этот документ предназначен для веб-разработчиков и разработчиков приложений. Использование Developer 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
Ваше приложение должно идентифицировать себя каждый раз, когда оно отправляет запрос в Google Fonts Developer API, включая ключ API в каждый запрос.
Получение и использование ключа API
Получить ключИли создайте его на странице Credentials .
Получив ключ API, ваше приложение может добавлять параметр запроса key= yourAPIKey
ко всем URL-адресам запроса.
Ключ API безопасен для встраивания в URL-адреса; ему не нужна кодировка.
Подробности
Ответ JSON (см. пример выше) состоит из массива с именем «элементы», который содержит объекты с информацией о каждом семействе шрифтов.
Объект семейства состоит из следующих полей:
- kind: Тип объекта, объект веб-шрифта.
- семья: название семьи
- подмножества: список скриптов, поддерживаемых семейством
- меню: URL-адрес подмножества семейства, охватывающий только название семейства.
- варианты: Различные стили доступны для семьи
- version: Версия семейства шрифтов.
- axes: Диапазон осей, присутствует только по запросу (см. ниже) для переменных шрифтов.
- lastModified: Дата (в формате «гггг-ММ-дд»), когда семейство шрифтов было изменено в последний раз.
- files: файлы семейства шрифтов (со всеми поддерживаемыми скриптами) для каждого из доступных вариантов.
Объединив информацию для каждого семейства, легко создать запрос 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
Возможные значения сортировки:
- альфа: сортировать список по алфавиту
- date: сортировать список по дате добавления (сначала добавлен или обновлен самый последний шрифт)
- популярность: отсортируйте список по популярности (сначала самая популярная семья)
- стиль: сортировка списка по количеству доступных стилей (сначала семейство с большинством стилей)
- в тренде: отсортируйте список по семьям, в которых наблюдается рост использования (семья, в которой наблюдается наибольший рост в первую очередь).
Фильтрация
Запросить конкретное семейство
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
Переменные шрифты
Переменные шрифты предлагают непрерывный диапазон стилей. По умолчанию комбинация файлов статических шрифтов возвращается для переменных шрифтов, созданных в стандартных позициях. Если установлено capaibility=VF
, вместо статических файлов возвращается файл с переменными шрифтами вместе с доступными метаданными диапазона осей. пример примера:
https://www.googleapis.com/webfonts/v1/webfonts?capaibility=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
.