এই নথিতে Google Books API ব্যবহার করার জন্য আপনার প্রয়োজনীয় ব্যাকগ্রাউন্ড জ্ঞানের বিবরণ রয়েছে।
ভূমিকা
এই দস্তাবেজটি এমন ডেভেলপারদের উদ্দেশ্যে যারা এমন অ্যাপ্লিকেশন লিখতে চান যা Google Books API এর সাথে ইন্টারঅ্যাক্ট করতে পারে৷ বিশ্বের বইকে ডিজিটালাইজ করার জন্য Google Books-এর একটি দৃষ্টিভঙ্গি রয়েছে। আপনি সামগ্রী অনুসন্ধান করতে, একটি প্রমাণীকৃত ব্যবহারকারীর ব্যক্তিগত লাইব্রেরি সংগঠিত করতে এবং পাশাপাশি এটি সংশোধন করতে Google Books API ব্যবহার করতে পারেন৷
আপনি শুরু করার আগে
একটি Google অ্যাকাউন্ট পান
পরীক্ষার উদ্দেশ্যে আপনার একটি Google অ্যাকাউন্ট প্রয়োজন৷ আপনার যদি ইতিমধ্যেই একটি পরীক্ষামূলক অ্যাকাউন্ট থাকে, তাহলে আপনি সম্পূর্ণ প্রস্তুত; আপনি আপনার পরীক্ষার ডেটা সেট আপ করতে, সম্পাদনা করতে বা দেখতে Google Books ব্যবহারকারী ইন্টারফেসে যেতে পারেন।
বইয়ের সাথে পরিচিত হন
আপনি যদি Google Books ধারণার সাথে অপরিচিত হন, তাহলে আপনার এই নথিটি পড়া উচিত এবং কোড শুরু করার আগে ব্যবহারকারী ইন্টারফেসের সাথে পরীক্ষা করা উচিত। এই নথিটি অনুমান করে যে আপনি ওয়েব প্রোগ্রামিং ধারণা এবং ওয়েব ডেটা বিন্যাসের সাথে পরিচিত৷
অনুরোধ অনুমোদন এবং আপনার আবেদন সনাক্ত সম্পর্কে জানুন
যখন আপনার অ্যাপ্লিকেশান ব্যক্তিগত ডেটার অনুরোধ করে, অনুরোধটি অবশ্যই একজন প্রমাণীকৃত ব্যবহারকারীর দ্বারা অনুমোদিত হতে হবে যার সেই ডেটাতে অ্যাক্সেস রয়েছে৷
বিশেষ করে, Google Books API-এ "My Library"-এর অধীনে সমস্ত ক্রিয়াকলাপ ব্যক্তিগত বলে বিবেচিত হয় এবং এর জন্য প্রমাণীকরণ এবং অনুমোদনের প্রয়োজন হয়৷ উপরন্তু, যে কোনো অপারেশন যা Google Books ডেটা পরিবর্তন করে শুধুমাত্র সেই ডেটার মালিক ব্যবহারকারী দ্বারা সঞ্চালিত হতে পারে।
যখন আপনার অ্যাপ্লিকেশন সর্বজনীন ডেটার অনুরোধ করে, তখন অনুরোধটির অনুমোদনের প্রয়োজন হয় না, তবে একটি API কী এর মতো একটি শনাক্তকারীর সাথে থাকা প্রয়োজন৷
কিভাবে অনুরোধ অনুমোদন করতে হয় এবং এপিআই কী ব্যবহার করতে হয় সে সম্পর্কে তথ্যের জন্য, এপিআই ডকুমেন্ট ব্যবহার করে অনুরোধ অনুমোদন এবং আপনার অ্যাপ্লিকেশন সনাক্তকরণ দেখুন।
বই API ব্যাকগ্রাউন্ড
বইয়ের ধারণা
Google Books চারটি মৌলিক ধারণার উপর নির্মিত:
- ভলিউম : একটি ভলিউম সেই ডেটা উপস্থাপন করে যা Google Books একটি বই বা ম্যাগাজিন সম্পর্কে হোস্ট করে। এটি Books API-এর প্রাথমিক সম্পদ। এই API-এর অন্যান্য সমস্ত সংস্থান হয় একটি ভলিউম ধারণ করে বা টীকা দেয়৷
- বুকশেলফ : বুকশেলফ হল ভলিউমের একটি সংগ্রহ। Google Books প্রতিটি ব্যবহারকারীর জন্য পূর্বনির্ধারিত বুকশেলফের একটি সেট সরবরাহ করে, যার মধ্যে কিছু ব্যবহারকারীর দ্বারা সম্পূর্ণরূপে পরিচালিত হয়, যার মধ্যে কিছু ব্যবহারকারীর কার্যকলাপের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে পূরণ করা হয় এবং যার মধ্যে কিছু মিশ্রিত হয়। ব্যবহারকারীরা অন্য বুকশেলভ তৈরি, পরিবর্তন বা মুছে ফেলতে পারে, যেগুলো সবসময় ম্যানুয়ালি ভলিউম দিয়ে ভরা থাকে। বুকশেলফগুলি ব্যবহারকারী দ্বারা ব্যক্তিগত বা সর্বজনীন করা যেতে পারে।
দ্রষ্টব্য: বুকশেলফ তৈরি এবং মুছে ফেলার পাশাপাশি বুকশেলফগুলিতে গোপনীয়তা সেটিংস পরিবর্তন করা বর্তমানে শুধুমাত্র Google Books সাইটের মাধ্যমে করা যেতে পারে।
- পর্যালোচনা : একটি ভলিউমের একটি পর্যালোচনা হল একটি তারকা রেটিং এবং/অথবা পাঠ্যের সংমিশ্রণ। একজন ব্যবহারকারী প্রতি ভলিউম একটি পর্যালোচনা জমা দিতে পারেন. পর্যালোচনাগুলি বাইরের উত্স থেকেও পাওয়া যায় এবং যথাযথভাবে দায়ী করা হয়৷
- রিডিং পজিশন : রিডিং পজিশন একজন ব্যবহারকারীর ভলিউমের শেষ পঠিত অবস্থান নির্দেশ করে। একজন ব্যবহারকারী প্রতি ভলিউম শুধুমাত্র একটি পড়ার অবস্থান থাকতে পারে। যদি ব্যবহারকারী আগে সেই ভলিউমটি না খুলে থাকেন, তাহলে পড়ার অবস্থানটি বিদ্যমান নেই। পড়ার অবস্থান একটি শব্দের রেজোলিউশনের নিচে বিস্তারিত অবস্থানের তথ্য সংরক্ষণ করতে পারে। এই তথ্য সবসময় ব্যবহারকারীর ব্যক্তিগত.
বই API ডেটা মডেল
একটি সম্পদ একটি অনন্য শনাক্তকারী সহ একটি পৃথক ডেটা সত্তা। উপরে বর্ণিত ধারণার উপর ভিত্তি করে Books API দুটি ধরনের সম্পদের উপর কাজ করে:
- ভলিউম রিসোর্স : একটি ভলিউম প্রতিনিধিত্ব করে।
- বুকশেলফ রিসোর্স : একটি নির্দিষ্ট ব্যবহারকারীর জন্য একটি একক বুকশেলফ প্রতিনিধিত্ব করে।
Books API ডেটা মডেলটি সম্পদের গোষ্ঠীর উপর ভিত্তি করে, যাকে বলা হয় সংগ্রহ:
- ভলিউম সংগ্রহ
- ভলিউম সংগ্রহ হল Google Books দ্বারা পরিচালিত প্রতিটি ভলিউম সম্পদের একটি সংগ্রহ৷ যেমন, আপনি সমস্ত ভলিউম সংস্থান তালিকাভুক্ত করতে পারবেন না, তবে আপনি অনুসন্ধান পদগুলির একটি সেটের সাথে মেলে এমন সমস্ত ভলিউম তালিকাভুক্ত করতে পারেন।
- বুকশেল্ফ সংগ্রহ
- একটি বুকশেল্ফ সংগ্রহে Google Books দ্বারা পরিচালিত সমস্ত বুকশেল্ফ সংস্থান থাকে৷ বুকশেলফগুলি অবশ্যই একটি নির্দিষ্ট ব্যবহারকারীর লাইব্রেরির প্রসঙ্গে উল্লেখ করা উচিত। বুকশেলভ শূন্য বা তার বেশি ভলিউম থাকতে পারে।
- প্রিয়: পরিবর্তনযোগ্য বুকশেলফ।
- ক্রয় করা: ব্যবহারকারী ক্রয় করা ভলিউম দিয়ে জনবহুল। ব্যবহারকারী ম্যানুয়ালি ভলিউম যোগ বা অপসারণ করতে পারবেন না।
- পড়ার জন্য: পরিবর্তনযোগ্য বুকশেলফ।
- এখন পড়া: পরিবর্তনযোগ্য বুকশেল্ফ।
- পড়েছেন: পরিবর্তনযোগ্য বুকশেলফ।
- পর্যালোচনা করা হয়েছে: ব্যবহারকারীর পর্যালোচনা করা ভলিউম দিয়ে জনবহুল। ব্যবহারকারী ম্যানুয়ালি ভলিউম যোগ বা অপসারণ করতে পারবেন না।
- সম্প্রতি দেখা: ব্যবহারকারী সম্প্রতি একটি ওয়েব রিডারে খুলেছেন এমন ভলিউম দিয়ে জনবহুল৷ ব্যবহারকারী ম্যানুয়ালি ভলিউম যোগ করতে পারবেন না।
- আমার ইবুক: পরিবর্তনযোগ্য বুকশেল্ফ। কেনা বই স্বয়ংক্রিয়ভাবে যোগ করা হয়, কিন্তু ম্যানুয়ালি সরানো যেতে পারে.
- আপনার জন্য বই: ব্যক্তিগতকৃত ভলিউম সুপারিশের সাথে জনবহুল। যদি আমাদের ব্যবহারকারীর জন্য কোন সুপারিশ না থাকে, তাহলে এই বুকশেলফটি বিদ্যমান নেই।
- "প্রিয়"
- "হ্যারি পটার"
- "আমার ইবুকস"
- "সুইচ"
- "গোধূলি"
- "দ্য গার্ল উইথ দ্য ড্রাগন ট্যাটু"
Google প্রতিটি ব্যবহারকারীর জন্য পূর্ব-নির্ধারিত বুকশেলফের একটি সেট প্রদান করে:
বুকশেলফের উদাহরণ:
বই API অপারেশন
আপনি বইয়ের API-এ সংগ্রহ এবং সংস্থানগুলির জন্য পাঁচটি ভিন্ন পদ্ধতি ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত টেবিলে বর্ণিত হয়েছে।
অপারেশন | বর্ণনা | REST HTTP ম্যাপিং |
---|---|---|
তালিকা | একটি সংগ্রহের মধ্যে সম্পদের একটি নির্দিষ্ট উপসেট তালিকাভুক্ত করে। | একটি সংগ্রহ URI এ GET । |
সন্নিবেশ | একটি সংগ্রহে একটি নতুন সংস্থান সন্নিবেশ করায় (একটি নতুন সংস্থান তৈরি করা)। | একটি সংগ্রহ URI-তে POST , যেখানে আপনি একটি নতুন সংস্থানের জন্য ডেটা পাস করেন। |
পেতে | একটি নির্দিষ্ট সম্পদ পায়। | রিসোর্স ইউআরআই-এ GET । |
আপডেট | একটি নির্দিষ্ট সংস্থান আপডেট করে। | রিসোর্স ইউআরআইতে PUT , যেখানে আপনি আপডেট করা রিসোর্সের জন্য ডেটা পাস করেন। |
মুছে ফেলুন | একটি নির্দিষ্ট সম্পদ মুছে দেয়। | রিসোর্স ইউআরআই-তে DELETE , যেখানে আপনি রিসোর্স মুছে ফেলার জন্য ডেটা পাস করেন। |
বিভিন্ন ধরণের সংস্থানগুলির জন্য সমর্থিত ক্রিয়াকলাপগুলি নীচের সারণীতে সংক্ষিপ্ত করা হয়েছে। ব্যবহারকারীর ব্যক্তিগত ডেটাতে প্রযোজ্য ক্রিয়াকলাপগুলিকে "মাই লাইব্রেরি" অপারেশন বলা হয় এবং সেগুলির সকলেরই প্রমাণীকরণের প্রয়োজন হয়৷
সম্পদের ধরন | সমর্থিত অপারেশন | ||||
---|---|---|---|---|---|
তালিকা | সন্নিবেশ | পেতে | আপডেট | মুছে ফেলুন | |
ভলিউম | হ্যাঁ* | হ্যাঁ | |||
বইয়ের তাক | হ্যাঁ* | হ্যাঁ, প্রমাণীকৃত | হ্যাঁ* | হ্যাঁ, প্রমাণীকৃত | হ্যাঁ, প্রমাণীকৃত |
পজিশন পড়া | হ্যাঁ, প্রমাণীকৃত | হ্যাঁ, প্রমাণীকৃত | হ্যাঁ, প্রমাণীকৃত | হ্যাঁ, প্রমাণীকৃত |
*এই ক্রিয়াকলাপগুলির প্রমাণীকৃত এবং অননুমোদিত সংস্করণ উভয়ই উপলব্ধ, যেখানে প্রমাণীকৃত অনুরোধগুলি ব্যবহারকারীর ব্যক্তিগত "মাই লাইব্রেরি" ডেটাতে কাজ করে এবং অননুমোদিত অনুরোধগুলি শুধুমাত্র পাবলিক ডেটাতে কাজ করে৷
কলিং শৈলী
API চালু করার বিভিন্ন উপায় রয়েছে:
- সরাসরি REST ব্যবহার করে
- জাভাস্ক্রিপ্ট থেকে REST ব্যবহার করা (কোন সার্ভার-সাইড কোডের প্রয়োজন নেই)
বিশ্রাম
REST হল সফ্টওয়্যার আর্কিটেকচারের একটি শৈলী যা ডেটা অনুরোধ এবং পরিবর্তন করার জন্য একটি সুবিধাজনক এবং সামঞ্জস্যপূর্ণ পদ্ধতি প্রদান করে।
REST শব্দটি " রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার " এর জন্য সংক্ষিপ্ত। Google API-এর প্রসঙ্গে, এটি Google দ্বারা সংরক্ষিত ডেটার উপস্থাপনা পুনরুদ্ধার এবং সংশোধন করার জন্য HTTP ক্রিয়া ব্যবহারকে বোঝায়।
একটি RESTful সিস্টেমে, সম্পদ একটি ডেটা স্টোরে সংরক্ষণ করা হয়; একটি ক্লায়েন্ট একটি অনুরোধ পাঠায় যে সার্ভার একটি নির্দিষ্ট ক্রিয়া সম্পাদন করে (যেমন একটি সংস্থান তৈরি করা, পুনরুদ্ধার করা, আপডেট করা বা মুছে ফেলা), এবং সার্ভার ক্রিয়াটি সম্পাদন করে এবং একটি প্রতিক্রিয়া পাঠায়, প্রায়শই নির্দিষ্ট সংস্থানের উপস্থাপনা আকারে।
Google-এর RESTful API-এ, ক্লায়েন্ট একটি HTTP ক্রিয়া যেমন POST
, GET
, PUT
, বা DELETE
ব্যবহার করে একটি ক্রিয়া নির্দিষ্ট করে৷ এটি নিম্নলিখিত ফর্মের একটি বিশ্বব্যাপী-অনন্য URI দ্বারা একটি সংস্থান নির্দিষ্ট করে:
https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters
যেহেতু সমস্ত API সংস্থানগুলিতে অনন্য HTTP- অ্যাক্সেসযোগ্য URI রয়েছে, REST ডেটা ক্যাশিং সক্ষম করে এবং ওয়েবের বিতরণ করা অবকাঠামোর সাথে কাজ করার জন্য অপ্টিমাইজ করা হয়৷
আপনি HTTP 1.1 স্ট্যান্ডার্ড ডকুমেন্টেশনে পদ্ধতির সংজ্ঞাগুলি দরকারী খুঁজে পেতে পারেন; তারা GET
, POST
, PUT
, এবং DELETE
এর স্পেসিফিকেশন অন্তর্ভুক্ত করে।
বুকস এপিআই-এ বিশ্রাম নিন
সমর্থিত বই অপারেশনগুলি সরাসরি REST HTTP ক্রিয়াগুলিতে ম্যাপ করে, যেমনটি Books API অপারেশনগুলিতে বর্ণিত হয়েছে।
Books API URI-এর নির্দিষ্ট বিন্যাস হল:
https://www.googleapis.com/books/v1/{collectionName}/resourceID?parameters
যেখানে resourceID
হল একটি ভলিউম বা বুকশেল্ফ রিসোর্সের শনাক্তকারী এবং parameters
হল কোয়েরিতে প্রযোজ্য যেকোন প্যারামিটার। বিস্তারিত জানার জন্য কোয়েরি প্যারামিটার রেফারেন্স দেখুন।
resourceID
পাথ এক্সটেনশনের ফর্ম্যাট আপনাকে বর্তমানে আপনি যে সংস্থানটি পরিচালনা করছেন তা সনাক্ত করতে দেয়, উদাহরণস্বরূপ:
https://www.googleapis.com/books/v1/volumes https://www.googleapis.com/books/v1/volumes/volumeId https://www.googleapis.com/books/v1/mylibrary/bookshelves https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/volumes ...
মনে রাখবেন যে URI-তে mylibrary
সাথে ক্রিয়াকলাপগুলি শুধুমাত্র বর্তমানে প্রমাণীকৃত ব্যবহারকারীর ব্যক্তিগত লাইব্রেরি ডেটাতে প্রযোজ্য। API-এ প্রতিটি সমর্থিত ক্রিয়াকলাপের জন্য ব্যবহৃত URI-এর সম্পূর্ণ সেটটি Books API রেফারেন্স নথিতে সংক্ষিপ্ত করা হয়েছে।
বুকস এপিআইতে এটি কীভাবে কাজ করে তার কয়েকটি উদাহরণ এখানে রয়েছে।
কুইল্টিংয়ের জন্য অনুসন্ধান করুন:
GET https://www.googleapis.com/books/v1/volumes?q=quilting
ভলিউম s1gVAAAAYAAJ সম্পর্কে তথ্য পান:
GET https://www.googleapis.com/books/v1/volumes/s1gVAAAAYAAJ
জাভাস্ক্রিপ্ট থেকে REST
আপনি callback
ক্যোয়ারী প্যারামিটার এবং একটি কলব্যাক ফাংশন ব্যবহার করে জাভাস্ক্রিপ্ট (যাকে JSON-P ও বলা হয়) থেকে REST ব্যবহার করে Books API চালু করতে পারেন। এটি আপনাকে সমৃদ্ধ অ্যাপ্লিকেশন লিখতে দেয় যা কোনো সার্ভার সাইড কোড না লিখেই বইয়ের ডেটা প্রদর্শন করে।
দ্রষ্টব্য: আপনি access_token
প্যারামিটার ব্যবহার করে একটি OAuth 2.0 টোকেন পাস করে প্রমাণীকৃত পদ্ধতিতে কল করতে পারেন। JavaScript ব্যবহার করার জন্য একটি OAuth 2.0 টোকেন পেতে, ক্লায়েন্ট-সাইড ওয়েব অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 -এ বর্ণিত নির্দেশাবলী অনুসরণ করুন। APIs কনসোলের "API অ্যাক্সেস" ট্যাবে, ওয়েব অ্যাপ্লিকেশনগুলির জন্য একটি ক্লায়েন্ট আইডি সেট আপ করতে ভুলবেন না এবং আপনার টোকেন পাওয়ার সময় সেই OAuth 2.0 শংসাপত্রগুলি ব্যবহার করতে ভুলবেন না।
নিম্নলিখিত উদাহরণ "হ্যারি পটার" এর জন্য অনুসন্ধান ফলাফল প্রদর্শন করতে এই পদ্ধতি ব্যবহার করে:
<html> <head> <title>Books API Example</title> </head> <body> <div id="content"></div> <script> function handleResponse(response) { for (var i = 0; i < response.items.length; i++) { var item = response.items[i]; // in production code, item.text should have the HTML entities escaped. document.getElementById("content").innerHTML += "<br>" + item.volumeInfo.title; } } </script> <script src="https://www.googleapis.com/books/v1/volumes?q=harry+potter&callback=handleResponse"></script> </body> </html>
ডেটা বিন্যাস
JSON
JSON (জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন) হল একটি সাধারণ, ভাষা-স্বাধীন ডেটা ফর্ম্যাট যা নির্বিচারে ডেটা স্ট্রাকচারের একটি সাধারণ পাঠ্য উপস্থাপনা প্রদান করে। আরও তথ্যের জন্য, json.org দেখুন।