Geliştirici API'si

Developer API, Google Fonts tarafından sunulan tüm aileler için meta verilere erişim sağlar. Uygulamaların, mevcut yazı tipi aileleri için Google Fonts'u sorgulamasına olanak tanır. REST API, verileri her ailedeki stilleri ve komut dosyalarını (Google Fonts'ta alt kümeler olarak adlandırılır) içeren JSON biçiminde sağlar. API; aileler 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.

Küçük 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 aşağıdaki gibi 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"
  },
  [...]
 ]
}

Google'a başvurunuzu tanımlama

Google Fonts Developer API'ye her istek gönderdiğinde, her isteğe bir API anahtarı ekleyerek uygulamanızın kendini tanımlaması gerekir.

API anahtarı edinme ve kullanma

Anahtar Al

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

Bir 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 bir yazı tipi ailesi hakkında bilgi içeren nesneler içeren "items" adlı bir diziden oluşur.

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

  • type: Nesnenin türü, webfont nesnesi
  • family: Ailenin adı
  • alt kümeler: Aile tarafından desteklenen komut dosyalarının listesi
  • menü: Yalnızca ailenin adını içeren aile alt kümesinin URL'si.
  • varyantlar: Ailenin kullanabileceği farklı stiller
  • version: Yazı tipi ailesi sürümü.
  • eksenler: Eksen aralığı, Değişken yazı tipleri için yalnızca istek üzerine(aşağıya bakın) sunum yapın.
  • lastModified: Yazı tipi ailesinin son değiştirildiği tarih ("yyyy-AA-gg biçiminde").
  • files: Kullanılabilir 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şturabilirsiniz. Örneğin, Anonim Pro için aile nesnesine bir referansmızın olduğunu varsayarsak:

[...]

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

Aileler listesi, varsayılan olarak belirli bir sıra olmadan döndürülür. Bununla birlikte, listeyi Sort parametresini kullanarak 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ırala
  • date: Listeyi eklenme tarihine göre sırala (önce en son eklenen veya güncellenen yazı tipi)
  • popülerlik: Listeyi popülerliğe göre sıralayın (önce en popüler aile)
  • style: Listeyi kullanılabilir stil sayısına göre sıralayın (önce çoğu stile sahip aile)
  • Trend: Listeyi kullanım oranında artış gören ailelere göre sıralayın (önce en çok büyüme görülen aile)

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

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, stiller arasından seçimler yapmanızı sağlar. Varsayılan olarak, standart konumlarda gösterilen değişken yazı tipleri için bir statik yazı tipi dosyası kombinasyonu döndürülür. capability=VF ayarlanırsa kullanılabilir eksenler aralığı meta verileriyle birlikte statik dosyalar 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ı.

capability: VF | WOFF2.

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