Developer API, Google Fonts tarafından sunulan tüm ailelerin meta verilerine erişim sağlar. Bu izin, uygulamaların Google Fonts'ta bulunan yazı tipi ailelerini sorgulamasına olanak tanır. REST API, her ailedeki stilleri ve komut dosyalarını (Google Fonts'ta alt kümeler olarak adlandırılır) içeren JSON biçiminde veri sağlar. API, aile listesini alfabetik olarak, eklenme tarihine göre, stil sayısına göre, trende göre veya popülerliğe göre sıralayabilir.
Kitle
Bu belge, web ve uygulama geliştiriciler için hazırlanmıştır. Developer API'yi kullanmak için JavaScript bilgisi gerekir.
Kısa bir örnek
Google Fonts hizmeti tarafından sunulan yazı tiplerinin dinamik listesini almak için aşağıdaki isteği gönderin:
https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY
Sonucun bir örneği şu şekilde görünür:
{ "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" }, [...] ] }
Uygulamanızı Google'a tanıtma
Uygulamanızın, Google Fonts Developer API'ye her istek gönderdiğinde kendini tanıtması gerekir. Bunu, her isteğe bir API anahtarı ekleyerek yapabilirsiniz.
API anahtarı edinme ve kullanma
Anahtar almaveya Kimlik Bilgileri sayfasında bir tane oluşturun.
API anahtarınız olduğunda uygulamanız, sorgu parametresini
key=yourAPIKey
tüm istek URL'lerine ekleyebilir.
API anahtarı, URL'lere yerleştirmek için güvenlidir; herhangi bir kodlama yapmanız gerekmez.
Ayrıntılar
JSON yanıtı (yukarıdaki örneğe bakın), her yazı ailesi hakkında bilgi içeren nesneler içeren "items" adlı bir diziden oluşur.
Bir aile nesnesi aşağıdaki alanlardan oluşur:
- kind: Nesnenin türü, bir web yazı tipi nesnesi
- family: Ailenin adı
- alt kümeler: Aile tarafından desteklenen komut dosyalarının listesi
- menu: Yalnızca ailenin adını kapsayan aile alt kümesinin URL'si.
- varyantlar: Aile için kullanılabilen farklı stiller
- version: Yazı tipi ailesinin sürümü.
- eksenler: Eksen aralığı, değişken yazı tipleri için yalnızca istek üzerine sunulur (aşağıya bakın).
- lastModified: Yazı tipi ailesinin son değiştirildiği tarih ("yyyy-MM-dd" biçiminde).
- files: Mevcut varyantların her biri için yazı tipi ailesi dosyaları (desteklenen tüm komut dosyalarıyla birlikte).
- color_capabilities: Bu aile tarafından desteklenen renk biçimleri (varsa)
- etiketler: Bu ailelerin tasarım alanının tamamında geçerli olan etiketler. Yalnızca talep üzerine sunulur (aşağıya bakın).
Her aile için bilgileri birleştirerek Fonts API isteği oluşturmak kolaydır. Örneğin, Anonymous Pro için aile nesnesine bir referansımız olduğunu varsayalım:
[...] 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(''); [...]
Sıralama
Aile listesi varsayılan olarak belirli bir sırada döndürülmez. Ancak, sıralama parametresini kullanarak listeyi sıralamak mümkündür:
https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity
Olası sıralama değerleri şunlardır:
- alfa: Listeyi alfabetik olarak sıralama
- date: Listeyi eklenme tarihine göre sıralayın (en yeni eklenen veya güncellenen yazı tipi önce gösterilir).
- popülerlik: Listeyi popülerliğe göre sıralayın (en popüler aile önce gelir)
- stil: Listeyi, kullanılabilen stil sayısına göre sıralayın (en çok stile sahip aile önce gelir).
- trend olanlar: Listeyi, kullanımda artış gösteren ailelere göre sıralayın (en fazla artış gösteren aile en başta yer alır).
Filtreleme
Belirli bir aileye ait sorgu yapma
https://www.googleapis.com/webfonts/v1/webfonts?family=family_name
Yunan alt kümesini destekleyen tüm aileler
https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name
Yazı tipi kategorisine göre filtreleme
https://www.googleapis.com/webfonts/v1/webfonts?category=category_name
Optimizasyon
woff2 biçiminde sıkıştırılmış yazı tipi dosyalarını almak için
https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2
Değişken Yazı Tipleri
Değişken yazı tipleri, sürekli stil aralıkları sunar. Varsayılan olarak, standart konumlarda oluşturulan değişken yazı tipleri için statik yazı tipi dosyalarının bir kombinasyonu döndürülür.
capability=VF
ayarlanırsa kullanılabilir eksen aralığı meta verileriyle birlikte statik olanlar yerine değişken yazı tipi dosyası döndürülür.
Örnek:
https://www.googleapis.com/webfonts/v1/webfonts?capability=VF
Örnek yanıt:
{ "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 } ] }, [...] ] }
Etiketler
capability=FAMILY_TAGS
ayarlanırsa etiketler alanı, ailenin tasarım alanının tamamıyla ilgili tüm etiketlerle doldurulur.
örnek örnek:
{ "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 Spesifikasyonu
webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]
your_key
: Geliştirici API anahtarınız.
family
: Yazı tipi ailesinin adı.
subset
: Bir yazı tipi alt kümesinin adı.
category
: serif
| sans-serif
| monospace
| display
| handwriting
capability
: VF
| WOFF2
.
sort
: alpha
| date
| popularity
| style
| trending
.