Developer API memberikan akses ke metadata untuk semua rangkaian font yang ditayangkan oleh Google Fonts. API ini memungkinkan aplikasi mengkueri Google Fonts untuk mengetahui jenis font yang tersedia. REST API menyediakan data dalam format JSON yang mencakup gaya dan skrip (disebut subset di Google Fonts) dalam setiap family. API dapat mengurutkan daftar keluarga huruf berdasarkan alfabet, tanggal ditambahkan, jumlah gaya, tren, atau popularitas.
Audiens
Dokumen ini ditujukan untuk developer web dan aplikasi. Penggunaan Developer API memerlukan pengetahuan JavaScript.
Contoh singkat
Untuk mengambil daftar font dinamis yang ditawarkan oleh layanan Google Fonts, kirim permintaan berikut:
https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY
Contoh hasilnya akan terlihat seperti ini:
{ "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" }, [...] ] }
Mengidentifikasi aplikasi Anda ke Google
Aplikasi Anda harus mengidentifikasi dirinya setiap kali mengirim permintaan ke Google Fonts Developer API, dengan menyertakan kunci API pada setiap permintaan.
Mendapatkan dan menggunakan kunci API
Dapatkan KunciAtau buat di halaman Kredensial.
Setelah memiliki kunci API, aplikasi Anda dapat menambahkan parameter kueri key=yourAPIKey
ke semua URL permintaan.
Kunci API aman untuk disematkan di URL; tidak memerlukan encoding apa pun.
Detail
Respons JSON (lihat contoh di atas) terdiri dari array bernama "items" yang berisi objek dengan informasi tentang setiap family font.
Objek family terdiri dari kolom berikut:
- kind: Jenis objek, objek webfont
- keluarga: Nama keluarga
- subset: Daftar skrip yang didukung oleh family
- menu: URL ke subset keluarga yang hanya mencakup nama keluarga.
- varian: Gaya berbeda yang tersedia untuk family
- versi: Versi jenis font.
- axes: Rentang sumbu, Hanya ada berdasarkan permintaan (lihat di bawah) untuk font variabel.
- lastModified: Tanggal (format "yyyy-MM-dd") terakhir kali jenis font diubah.
- files: File jenis huruf (dengan semua skrip yang didukung) untuk setiap varian yang tersedia.
- color_capabilities: Format warna, jika ada, yang didukung oleh grup ini
- tag: Tag yang berlaku di seluruh ruang desain keluarga ini. Hanya tersedia berdasarkan permintaan (lihat di bawah).
Dengan menggabungkan informasi untuk setiap jenis font, Anda dapat dengan mudah membuat permintaan Fonts API. Misalnya, dengan asumsi kita memiliki referensi ke objek family untuk 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(''); [...]
Pengurutan
Daftar family ditampilkan tanpa urutan tertentu secara default. Namun, daftar dapat diurutkan menggunakan parameter pengurutan:
https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity
Nilai pengurutan yang mungkin adalah:
- alfa: Urutkan daftar menurut abjad
- date: Mengurutkan daftar berdasarkan tanggal ditambahkan (font terbaru yang ditambahkan atau diperbarui lebih dulu)
- popularitas: Urutkan daftar berdasarkan popularitas (keluarga paling populer terlebih dahulu)
- gaya: Urutkan daftar menurut jumlah gaya yang tersedia (keluarga dengan gaya terbanyak di urutan pertama)
- trending: Urutkan daftar menurut keluarga yang mengalami pertumbuhan penggunaan (keluarga yang mengalami pertumbuhan paling besar terlebih dahulu)
Pemfilteran
Membuat kueri keluarga tertentu
https://www.googleapis.com/webfonts/v1/webfonts?family=family_name
Semua family yang mendukung subset Yunani
https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name
Memfilter menurut kategori font
https://www.googleapis.com/webfonts/v1/webfonts?category=category_name
Pengoptimalan
Untuk mengambil file font yang dikompresi dalam format woff2
https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2
Font Variabel
Font variabel menawarkan rentang gaya yang berkelanjutan. Secara default, kombinasi file font statis ditampilkan untuk font variabel yang di-instantiate pada posisi standar.
Jika capability=VF
disetel, file font variabel akan ditampilkan, bukan file statis, beserta metadata rentang sumbu yang tersedia.
Contoh:
https://www.googleapis.com/webfonts/v1/webfonts?capability=VF
Contoh respons:
{ "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 } ] }, [...] ] }
Tag
Jika capability=FAMILY_TAGS
disetel, kolom tag akan diisi dengan semua
tag yang berkaitan dengan seluruh ruang desain keluarga.
contoh sampel:
{ "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, } ] }, [...] ] }
Spesifikasi URL API
webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]
your_key
: Kunci API developer Anda.
family
: Nama kelompok huruf.
subset
: Nama subset font.
category
: serif
| sans-serif
| monospace
| display
| handwriting
capability
: VF
| WOFF2
.
sort
: alpha
| date
| popularity
| style
| trending
.