এই ডকুমেন্টটি Google Data API-এর দ্বারা ব্যবহৃত প্রোটোকলের মূল বিষয়গুলি বর্ণনা করে, যার মধ্যে একটি প্রশ্ন কেমন দেখায়, ফলাফলগুলি কেমন দেখায় ইত্যাদির উদাহরণ সহ।
Google ডেটা এপিআই সম্পর্কে আরও তথ্যের জন্য, Google ডেটা বিকাশকারীর গাইড নথি এবং রেফারেন্স গাইড দেখুন।
শ্রোতা
এই ডকুমেন্টটি এমন যেকোনও ব্যক্তির জন্য যারা XML ফর্ম্যাট এবং Google Data APIs দ্বারা ব্যবহৃত প্রোটোকলের সাধারণ ধারণা বুঝতে চান।
এমনকি যদি আপনি শুধুমাত্র ভাষা-নির্দিষ্ট ক্লায়েন্ট লাইব্রেরি ব্যবহার করে এমন কোড লিখতে চান, তাহলে ক্লায়েন্ট-লাইব্রেরি বিমূর্তকরণ স্তরের নীচে কী চলছে তা বোঝার জন্য আপনি এই নথিটি পড়তে চাইতে পারেন।
এই দস্তাবেজটি অনুমান করে যে আপনি XML, নেমস্পেস, সিন্ডিকেটেড ফিড এবং HTTP-তে GET
, POST
, PUT
, এবং DELETE
অনুরোধগুলি, সেইসাথে HTTP-এর একটি "রিসোর্স" ধারণার বুনিয়াদি বোঝেন৷ এই জিনিসগুলি সম্পর্কে আরও তথ্যের জন্য, এই নথির অতিরিক্ত সংস্থান বিভাগটি দেখুন।
এই নথিটি কোনো নির্দিষ্ট প্রোগ্রামিং ভাষার উপর নির্ভর করে না; আপনার ক্লায়েন্ট যেকোনো প্রোগ্রামিং ভাষা ব্যবহার করে সার্ভারের সাথে ইন্টারঅ্যাক্ট করতে পারে যা আপনাকে HTTP অনুরোধ ইস্যু করতে এবং XML-ভিত্তিক প্রতিক্রিয়া পার্স করতে দেয়।
উদাহরণ
নিম্নলিখিত উদাহরণগুলি খালি ডেটা API প্রোটোকল অনুরোধগুলি দেখায় যা আপনি একটি জেনেরিক পরিষেবাতে পাঠাতে পারেন এবং ফলাফলগুলি আপনি পেতে পারেন৷ বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে কিভাবে অনুরোধ পাঠাতে হয় তার উদাহরণের জন্য, ভাষা-নির্দিষ্ট নমুনা এবং ক্লায়েন্ট লাইব্রেরি দেখুন। নির্দিষ্ট Google পরিষেবাগুলির সাথে Google ডেটা API ব্যবহার করার বিষয়ে তথ্যের জন্য, পরিষেবা-নির্দিষ্ট ডকুমেন্টেশন দেখুন৷
একটি ফিড বা অন্য সম্পদ অনুরোধ
ধরে নিন /myFeed নামে একটি ফিড আছে, এবং অনুমান করুন যে এটি বর্তমানে কোনো এন্ট্রি ধারণ করে না। এটি দেখতে, সার্ভারে নিম্নলিখিত অনুরোধ পাঠান:
GET /myFeed
সার্ভার উত্তর দেয়:
200 OK <?xml version="1.0"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Foo</title> <updated>2006-01-23T16:25:00-08:00</updated> <id>http://www.example.com/myFeed</id> <author> <name>Jo March</name> </author> <link href="/myFeed" rel="self"/> </feed>
মনে রাখবেন যদিও ফিডে কোনো এন্ট্রি নেই, এতে মেটাডেটা থাকে, যেমন একটি শিরোনাম এবং লেখকের নাম।
একটি নতুন এন্ট্রি সন্নিবেশ করা হচ্ছে
একটি নতুন এন্ট্রি তৈরি করতে, একটি POST
অনুরোধ পাঠান এবং নতুন এন্ট্রির XML উপস্থাপনা সরবরাহ করুন:
POST /myFeed <?xml version="1.0"?> <entry xmlns="http://www.w3.org/2005/Atom"> <author> <name>Elizabeth Bennet</name> <email>liz@gmail.com</email> </author> <title type="text">Entry 1</title> <content type="text">This is my entry</content> </entry>
মনে রাখবেন যে আপনি স্ট্যান্ডার্ড অ্যাটম <id>
, <link>
, বা <updated>
উপাদান সরবরাহ করবেন না; সার্ভার আপনার POST
অনুরোধের প্রতিক্রিয়া হিসাবে সেগুলি তৈরি করে। এছাড়াও মনে রাখবেন যে একটি ফিডের লেখক একটি এন্ট্রির লেখক হিসাবে একই ব্যক্তি হতে হবে না।
সার্ভার উত্তর দেয়:
201 CREATED <?xml version="1.0"?> <entry xmlns="http://www.w3.org/2005/Atom"> <id>http://www.example.com/id/1</id> <link rel="edit" href="http://example.com/myFeed/1/1/"/> <updated>2006-01-23T16:26:03-08:00</updated> <author> <name>Elizabeth Bennet</name> <email>liz@gmail.com</email> </author> <title type="text">Entry 1</title> <content type="text">This is my entry</content> </entry>
একটি স্ট্রিং জন্য অনুসন্ধান করা হচ্ছে
একটি নির্দিষ্ট স্ট্রিং এর জন্য একটি পূর্ণ-পাঠ্য অনুসন্ধান করতে, পূর্ণ-পাঠ্য অনুসন্ধান সমর্থন করে এমন একটি পরিষেবা ব্যবহার করার সময়, q
প্যারামিটার সহ একটি GET
অনুরোধ পাঠান। ক্যোয়ারী প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, প্রোটোকল রেফারেন্স নথিতে ক্যোয়ারী অনুরোধগুলি দেখুন।
GET /myFeed?q=This
সার্ভার This
সার্চ স্ট্রিং এর সাথে মেলে এমন সব এন্ট্রির সাথে সাড়া দেয়। (এই ক্ষেত্রে শুধুমাত্র একটি আছে।)
200 OK <?xml version="1.0"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Foo</title> <updated>2006-01-23T16:26:03-08:00</updated> <id>http://www.example.com/myFeed</id> <author> <name>Jo March</name> </author> <link href="/myFeed" rel="self"/> <entry> <id>http://www.example.com/id/1</id> <link rel="edit" href="http://example.com/myFeed/1/1/"/> <updated>2006-01-23T16:26:03-08:00</updated> <author> <name>Elizabeth Bennet</name> <email>liz@gmail.com</email> </author> <title type="text">Entry 1</title> <content type="text">This is my entry</content> </entry> </feed>
একটি এন্ট্রি আপডেট করা হচ্ছে
একটি বিদ্যমান এন্ট্রি আপডেট করতে, এন্ট্রির সম্পাদনা URI সহ PUT
ব্যবহার করুন (যেমন পূর্বের উদাহরণে সার্ভার দ্বারা দেওয়া হয়েছে, <link rel="edit">
উপাদানে)।
যদি আপনার ফায়ারওয়াল PUT
অনুমতি না দেয়, তাহলে একটি HTTP POST
করুন এবং পদ্ধতিটি ওভাররাইড হেডারটি নিম্নরূপ সেট করুন:
X-HTTP-Method-Override: PUT
নিম্নলিখিত উদাহরণে, আমরা এন্ট্রির টেক্সটটিকে এর পুরানো মান ("এটি আমার এন্ট্রি") থেকে একটি নতুন মান ("এটি আমার প্রথম এন্ট্রি") এ পরিবর্তন করছি:
PUT /myFeed/1/1/ <?xml version="1.0"?> <entry xmlns="http://www.w3.org/2005/Atom"> <id>http://www.example.com/id/1</id> <link rel="edit" href="http://example.com/myFeed/1/1/"/> <updated>2006-01-23T16:28:05-08:00</updated> <author> <name>Elizabeth Bennet</name> <email>liz@gmail.com</email> </author> <title type="text">Entry 1</title> <content type="text">This is my first entry.</content> </entry>
সার্ভার উত্তর দেয়:
200 OK <?xml version="1.0"?> <entry xmlns="http://www.w3.org/2005/Atom"> <id>http://www.example.com/id/1</id> <link rel="edit" href="http://example.com/myFeed/1/2/"/> <updated>2006-01-23T16:28:05-08:00</updated> <author> <name>Elizabeth Bennet</name> <email>liz@gmail.com</email> </author> <title type="text">Entry 1</title> <content type="text">This is my first entry.</content> </entry>
উল্লেখ্য যে সম্পাদনা URI পরিবর্তিত হয়েছে; এটি এখন "/1/" এর পরিবর্তে "/2/" দিয়ে শেষ হয়। URI সম্পাদনার চূড়ান্ত সংখ্যাটি একটি সংস্করণ সংখ্যা। সংস্করণগুলি সম্পর্কে আরও তথ্যের জন্য, প্রোটোকল রেফারেন্স নথির আশাবাদী সমঝোতা বিভাগটি দেখুন।
প্রেক্ষাপটে নতুন এন্ট্রি দেখতে, পুরো সংস্থানটি আবার অনুরোধ করুন:
GET /myFeed
সার্ভার উত্তর দেয়:
200 OK <?xml version="1.0"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Foo</title> <updated>2006-01-23T16:28:05-08:00</updated> <id>http://www.example.com/myFeed</id> <author> <name>Jo March</name> </author> <link href="/myFeed" rel="self"/> <entry> <id>http://www.example.com/id/1</id> <link rel="edit" href="http://example.com/myFeed/1/2/"/> <updated>2006-01-23T16:28:05-08:00</updated> <author> <name>Elizabeth Bennet</name> <email>liz@gmail.com</email> </author> <title type="text">Entry 1</title> <content type="text">This is my first entry.</content> </entry> </feed>
একটি এন্ট্রি মুছে ফেলা হচ্ছে
একটি বিদ্যমান এন্ট্রি মুছে ফেলার জন্য, এন্ট্রির সম্পাদনা URI ব্যবহার করে একটি DELETE
অনুরোধ পাঠান (যেমন পূর্ববর্তী উদাহরণে সার্ভার দ্বারা সরবরাহ করা হয়েছে)।
যদি আপনার ফায়ারওয়াল DELETE
অনুমতি না দেয়, তাহলে একটি HTTP POST
করুন এবং মেথড ওভাররাইড হেডারটি নিম্নরূপ সেট করুন:
X-HTTP-Method-Override: DELETE
নিম্নলিখিত উদাহরণ একটি এন্ট্রি মুছে দেয়:
DELETE /myFeed/1/2/
সার্ভার উত্তর দেয়:
200 OK
ফিডটিতে এখন কোনো এন্ট্রি নেই তা দেখতে আরেকটি GET
করুন:
GET /myFeed
সার্ভার উত্তর দেয়:
200 OK <?xml version="1.0"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Foo</title> <updated>2006-01-23T16:30:11-08:00</updated> <id>http://www.example.com/myFeed</id> <author> <name>Jo March</name> </author> <link href="/myFeed" rel="self"/> </feed>
যদি মুছে ফেলা ব্যর্থ হয়, তাহলে সার্ভার একটি ত্রুটি কোড দিয়ে প্রতিক্রিয়া জানায়। আরও তথ্যের জন্য, প্রোটোকল রেফারেন্স নথিতে HTTP স্থিতি কোডগুলি দেখুন৷
অতিরিক্ত সম্পদ
আপনি নিম্নলিখিত তৃতীয় পক্ষের নথিগুলি দরকারী খুঁজে পেতে পারেন:
- আইবিএম থেকে পরমাণুর ওভারভিউ
- HTTP 1.1 পদ্ধতির সংজ্ঞা ;
GET
,POST
,PUT
, এবংDELETE
এর স্পেসিফিকেশন - HTTP 1.1 স্থিতি কোড সংজ্ঞা
- কিভাবে একটি REST প্রোটোকল তৈরি করবেন
- বিল্ডিং ওয়েব পরিষেবা বাকি উপায়
- XML-এর একটি প্রযুক্তিগত ভূমিকা
- উদাহরণ দ্বারা XML নেমস্পেস