বিকাশকারী API

বিকাশকারী 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") ফন্ট ফ্যামিলি শেষবারের মতো পরিবর্তন করা হয়েছে।
  • ফাইল: ফন্ট ফ্যামিলি ফাইল (সমস্ত সমর্থিত স্ক্রিপ্ট সহ) উপলব্ধ ভেরিয়েন্টগুলির প্রতিটির জন্য।

প্রতিটি পরিবারের জন্য তথ্য একত্রিত করে একটি ফন্ট 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

অপ্টিমাইজেশান

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
      }
    ]
  },
  [...]
 ]
}

API URL স্পেসিফিকেশন

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