Developer API ให้ข้อมูลเมตาแก่ทุกครอบครัวที่แสดงโดย Google Fonts ทําให้แอปสามารถค้นหาแบบอักษรของ Google Fonts สําหรับชุดแบบอักษรที่มีอยู่ API ของ REST จะให้ข้อมูลในรูปแบบ JSON ที่รวมสไตล์และสคริปต์ (เรียกว่าส่วนย่อยใน Google Fonts) ในแต่ละครอบครัว API สามารถจัดเรียงรายการครอบครัวตามลําดับตัวอักษร ตามวันที่เพิ่ม ตามรูปแบบ ตามแนวโน้ม หรือตามความนิยม
ผู้ชม
เอกสารนี้จัดทําขึ้นสําหรับนักพัฒนาเว็บและแอปพลิเคชัน การใช้ 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
รับคีย์หรือสร้างบัญชีไว้ในหน้าข้อมูลเข้าสู่ระบบ
เมื่อมีคีย์ API แล้ว แอปพลิเคชันจะเพิ่มพารามิเตอร์การค้นหา key=yourAPIKey
ต่อท้าย URL คําขอทั้งหมดได้
คีย์ API มีความปลอดภัยสําหรับการฝังใน URL โดยไม่จําเป็นต้องใช้การเข้ารหัส
รายละเอียด
การตอบสนองด้วย JSON (ดูตัวอย่างด้านบน) ประกอบด้วยอาร์เรย์ชื่อ "รายการ" ที่มีออบเจ็กต์ที่มีข้อมูลเกี่ยวกับแบบอักษรแต่ละชุด
ออบเจ็กต์ครอบครัวประกอบด้วยช่องต่อไปนี้
- ชนิด: ชนิดของวัตถุ
- ครอบครัว: ชื่อของครอบครัว
- ชุดย่อย: รายการสคริปต์ที่ครอบครัวรองรับ
- เมนู: URL ไปยังชุดย่อยของครอบครัวที่ครอบคลุมเฉพาะชื่อครอบครัว
- ตัวแปร: สไตล์ต่างๆ สําหรับครอบครัว
- version: รุ่นของแบบอักษร
- แกน: ช่วงแกน นําเสนอตามคําขอเท่านั้น(ดูด้านล่าง) สําหรับแบบอักษรแปรผัน
- lastModified: วันที่ (รูปแบบ "ปปปป-ดด-วว") แบบอักษรที่ได้รับการแก้ไขครั้งล่าสุด
- files: ไฟล์แบบอักษร (พร้อมสคริปต์ที่รองรับทั้งหมด) สําหรับรายละเอียดปลีกย่อยแต่ละรายการที่มีอยู่
การรวมข้อมูลของแต่ละครอบครัวทําให้สร้างคําขอ Fonts 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(''); [...]
การจัดเรียง
รายชื่อครอบครัวจะถูกส่งคืนตามลําดับที่ไม่ได้เป็นค่าเริ่มต้น อย่างไรก็ตาม คุณสามารถ จัดเรียงรายการโดยใช้พารามิเตอร์จัดเรียง
https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity
ค่าการจัดเรียงที่เป็นไปได้มีดังนี้
- อัลฟา: จัดเรียงรายการตามตัวอักษร
- date: จัดเรียงรายการตามวันที่เพิ่ม (เพิ่มหรืออัปเดตแบบอักษรล่าสุดก่อน)
- ความนิยม: จัดเรียงรายการตามความนิยม (ครอบครัวยอดนิยมมาก่อน)
- style: จัดเรียงรายการตามจํานวนสไตล์ที่มีอยู่ (ครอบครัวที่มีสไตล์มากที่สุดก่อน)
- แนวโน้ม: จัดเรียงรายการตามครอบครัวที่ได้เห็นการเติบโตในการใช้งาน (ครอบครัวเห็นการเติบโตสูงสุดก่อน)
การกรอง
ค้นหาครอบครัวที่ต้องการ
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