Geliştirici API'si

Developer API, Google Fonts tarafından sunulan tüm ailelerin meta verilerine erişim sağlar. Uygulamaların, mevcut yazı tipi aileleri için Google Fonts'u sorgulamasına olanak tanır. REST API, her ailedeki stilleri ve komut dosyalarını (Google Fonts'ta alt küme olarak adlandırılır) içeren verileri JSON biçiminde sağlar. API, aile listesini alfabetik olarak, eklenme tarihine, stil sayısına, trende veya popülerliğe göre sıralayabilir.

Kitle

Bu doküman, web ve uygulama geliştiricileri için hazırlanmıştır. Developer API'yi kullanmak için JavaScript bilgisi gerekir.

Hızlı 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

Sonuç ö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 her isteğe bir API anahtarı ekleyerek kendini tanımlaması gerekir.

API anahtarı edinme ve kullanma

Anahtar alma

veya Kimlik Bilgileri sayfasında bir tane oluşturun.

API anahtarınız olduktan sonra uygulamanız, key=yourAPIKey sorgu parametresini 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ı tipi ailesiyle ilgili bilgiler içeren nesneler içeren "items" adlı bir diziden oluşur.

Aile nesnesi aşağıdaki alanlardan oluşur:

  • kind: Nesnenin türü (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ı içeren aile alt kümesinin URL'si.
  • varyantlar: Aile için kullanılabilen farklı stiller
  • version: Yazı tipi ailesi sürümü.
  • axes: Eksen aralığı, Değişken yazı tipleri için yalnızca istek üzerine gösterilir(aşağıya bakın).
  • lastModified: Yazı tipi ailesinin en son değiştirildiği tarih ("yyyy-AA-gg" biçiminde).
  • dosyaları: Mevcut varyantların her biri için yazı tipi ailesi dosyaları (desteklenen tüm komut dosyalarıyla birlikte).

Her ailenin bilgilerini birleştirerek Fonts API isteği oluşturmak kolaydır. Örneğin, Anonymous Pro için family nesnesine 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:

  • alpha: Listeyi alfabetik olarak sıralar.
  • date: Listeyi eklenme tarihine göre sıralayın (en son eklenen veya güncellenen yazı tipi önce gelir)
  • popularity: Listeyi popülerliğe göre sıralayın (en popüler aile önce gelir)
  • style: Listeyi mevcut stil sayısına göre sıralayın (en çok stile sahip aile önce gelir).
  • trend: Listeyi, kullanımda artış gösteren ailelere göre sıralayın (en fazla artış gösteren aile önce gelir)

Filtreleme

Belirli bir aileyi sorgulama

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

Yunanca 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 mevcut eksen aralığı meta verileriyle birlikte statik yazı tipleri 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
      }
    ]
  },
  [...]
 ]
}

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: Yazı tipi alt kümesinin adı.

category: serif | sans-serif | monospace | display | handwriting

capability: VF | WOFF2.

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