বিকাশকারী API Google ফন্ট দ্বারা পরিবেশিত সমস্ত পরিবারের মেটাডেটাতে অ্যাক্সেস দেয়। এটি অ্যাপ্লিকেশানগুলিকে উপলব্ধ ফন্ট পরিবারগুলির জন্য Google ফন্টগুলি জিজ্ঞাসা করার অনুমতি দেয়৷ REST API JSON ফর্ম্যাটে ডেটা সরবরাহ করে যাতে প্রতিটি পরিবারে শৈলী এবং স্ক্রিপ্ট (গুগল ফন্টে উপসেট বলা হয়) অন্তর্ভুক্ত থাকে। API পরিবারের তালিকাকে বর্ণানুক্রমিকভাবে, যোগ করার তারিখ অনুসারে, শৈলীর সংখ্যা অনুসারে, প্রবণতা অনুসারে বা জনপ্রিয়তা অনুসারে সাজাতে পারে।
শ্রোতা
এই নথিটি ওয়েব এবং অ্যাপ্লিকেশন ডেভেলপারদের উদ্দেশ্যে। বিকাশকারী API ব্যবহার করার জন্য জাভাস্ক্রিপ্টের জ্ঞান প্রয়োজন।
একটি দ্রুত উদাহরণ
Google ফন্ট পরিষেবা দ্বারা প্রদত্ত ফন্টগুলির গতিশীল তালিকা পুনরুদ্ধার করতে, নিম্নলিখিত অনুরোধটি পাঠান:
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-এ আপনার আবেদন শনাক্ত করা
প্রতিটি অনুরোধের সাথে একটি API কী অন্তর্ভুক্ত করে Google Fonts Developer API-কে অনুরোধ পাঠানোর সময় আপনার অ্যাপ্লিকেশনটিকে নিজেকে সনাক্ত করতে হবে।
একটি API কী অর্জন এবং ব্যবহার করা
একটি চাবি পানঅথবা শংসাপত্র পৃষ্ঠায় একটি তৈরি করুন।
আপনার একটি API কী থাকার পরে, আপনার অ্যাপ্লিকেশনটি সমস্ত অনুরোধের URL-এ ক্যোয়ারী প্যারামিটার key= yourAPIKey যোগ করতে পারে।
API কী ইউআরএল-এ এম্বেড করার জন্য নিরাপদ; এটা কোন এনকোডিং প্রয়োজন নেই.
বিস্তারিত
JSON প্রতিক্রিয়া (উপরের নমুনা পড়ুন) "আইটেম" নামের একটি অ্যারে নিয়ে গঠিত যাতে প্রতিটি ফন্ট পরিবার সম্পর্কে তথ্য সহ অবজেক্ট থাকে।
একটি পারিবারিক বস্তু নিম্নলিখিত ক্ষেত্রগুলি নিয়ে গঠিত:
- kind: বস্তুর ধরনের, একটি webfont অবজেক্ট
- পরিবার: পরিবারের নাম
- উপসেট: পরিবার দ্বারা সমর্থিত স্ক্রিপ্টগুলির একটি তালিকা৷
- মেনু: পারিবারিক উপসেটের একটি url শুধুমাত্র পরিবারের নাম কভার করে।
- বৈকল্পিক: পরিবারের জন্য উপলব্ধ বিভিন্ন শৈলী
- সংস্করণ: ফন্ট ফ্যামিলি সংস্করণ।
- অক্ষ: অক্ষ পরিসীমা, পরিবর্তনশীল ফন্টের জন্য অনুরোধের ভিত্তিতে (নীচে দেখুন) উপস্থাপন করুন।
- lastModified: তারিখ (ফরম্যাট "yyyy-MM-dd") ফন্ট ফ্যামিলি শেষবারের মতো পরিবর্তন করা হয়েছে।
- ফাইল: ফন্ট ফ্যামিলি ফাইল (সমস্ত সমর্থিত স্ক্রিপ্ট সহ) উপলব্ধ ভেরিয়েন্টগুলির প্রতিটির জন্য।
- color_capabilities: রঙ বিন্যাস, যদি থাকে, এই পরিবার দ্বারা সমর্থিত
- ট্যাগ: ট্যাগগুলি এই পরিবারের পুরো ডিজাইন স্পেস জুড়ে প্রযোজ্য। শুধুমাত্র অনুরোধের ভিত্তিতে উপস্থাপন করুন (নীচে দেখুন)।
প্রতিটি পরিবারের জন্য তথ্য একত্রিত করে একটি ফন্ট API অনুরোধ তৈরি করা সহজ। উদাহরণস্বরূপ অনুমান করা হচ্ছে যে আমাদের কাছে বেনামী প্রো-এর জন্য পারিবারিক বস্তুর একটি রেফারেন্স রয়েছে:
[...]
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
সম্ভাব্য বাছাই মান হল:
- alpha: তালিকাটি বর্ণানুক্রমে সাজান
- তারিখ: যোগ করা তারিখ অনুসারে তালিকা সাজান (সর্বশেষ ফন্ট যোগ করা বা প্রথমে আপডেট করা হয়েছে)
- জনপ্রিয়তা: জনপ্রিয়তা অনুসারে তালিকা সাজান (প্রথমে সবচেয়ে জনপ্রিয় পরিবার)
- শৈলী: উপলব্ধ শৈলীর সংখ্যা অনুসারে তালিকা বাছাই করুন (প্রথমে বেশিরভাগ শৈলী সহ পরিবার)
- প্রবণতা: ব্যবহারের বৃদ্ধি দেখে পরিবার অনুসারে তালিকা বাছাই করুন (প্রথমে সবচেয়ে বেশি বৃদ্ধি পাচ্ছে পরিবার)
ফিল্টারিং
একটি নির্দিষ্ট পরিবারকে জিজ্ঞাসা করুন
https://www.googleapis.com/webfonts/v1/webfonts?family=family_name
গ্রীক উপসেট সমর্থন করে এমন সমস্ত পরিবার
https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name
ফন্ট বিভাগ দ্বারা ফিল্টার করুন
https://www.googleapis.com/webfonts/v1/webfonts?category=category_name
অপ্টিমাইজেশান
woff2 ফরম্যাটে সংকুচিত ফন্ট ফাইল পুনরুদ্ধার করার জন্য
https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2
পরিবর্তনশীল হরফ
পরিবর্তনশীল ফন্টগুলি ক্রমাগত শৈলীর রেঞ্জ অফার করে। ডিফল্টরূপে, স্ট্যাটিক ফন্ট ফাইলগুলির একটি সংমিশ্রণ স্ট্যান্ডার্ড পজিশনে তাত্ক্ষণিক পরিবর্তনশীল ফন্টগুলির জন্য ফেরত দেওয়া হয়। যদি capability=VF সেট করা থাকে, তাহলে ভ্যারিয়েবল ফন্ট ফাইলটি স্ট্যাটিক ফাইলের পরিবর্তে উপলব্ধ অক্ষ রেঞ্জ মেটাডেটা সহ ফেরত দেওয়া হয়। নমুনা উদাহরণ:
https://www.googleapis.com/webfonts/v1/webfonts?capability=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
}
]
},
[...]
]
}
ট্যাগ
যদি capability=FAMILY_TAGS সেট করা থাকে, ট্যাগ ফিল্ডটি পরিবারের সম্পূর্ণ ডিজাইনস্পেসের সাথে সম্পর্কিত সমস্ত ট্যাগ দিয়ে পপুলেট করা হবে।
নমুনা উদাহরণ:
{
"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 স্পেসিফিকেশন
webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]
your_key : আপনার বিকাশকারী API কী।
family : একটি ফন্ট পরিবারের নাম।
subset : একটি ফন্ট সাবসেটের নাম।
category : serif | sans-serif | monospace | display | handwriting
capability : VF | WOFF2 ।
sort : alpha | date | popularity | style | trending