Google डेटा API प्रोटोकॉल की बुनियादी बातें

इस दस्तावेज़ में बताया गया है कि Google डेटा एपीआई, किस प्रोटोकॉल का इस्तेमाल करता है. साथ ही, इसमें क्वेरी के दिखने के तरीके, नतीजों के बारे में जानकारी वगैरह भी शामिल होती है.

Google Data API के बारे में ज़्यादा जानकारी के लिए, Google Data Developer की गाइड दस्तावेज़ और रेफ़रंस गाइड देखें.

दर्शक

यह दस्तावेज़ उन सभी लोगों के लिए है जिन्हें Google डेटा एपीआई में इस्तेमाल किए जाने वाले एक्सएमएल फ़ॉर्मैट और प्रोटोकॉल के बारे में सामान्य जानकारी चाहिए.

भले ही आप केवल भाषा-विशिष्ट क्लाइंट लाइब्रेरी का उपयोग करने वाला कोड लिखना चाहें, लेकिन हो सकता है कि क्लाइंट-लाइब्रेरी ऐब्स्ट्रैक्शन लेयर के नीचे क्या हो रहा है, यह समझने के लिए आप यह दस्तावेज़ पढ़ना चाहें.

इस दस्तावेज़ में यह माना गया है कि आप एक्सएमएल, नेमस्पेस, सिंडिकेट किए गए फ़ीड, और एचटीटीपी में मौजूद GET, POST, PUT, और DELETE अनुरोधों के साथ-साथ एचटीटीपी के "रिसॉर्स" का सिद्धांत समझते हैं. उन चीज़ों के बारे में ज़्यादा जानकारी के लिए, इस दस्तावेज़ का अतिरिक्त संसाधन सेक्शन देखें.

यह दस्तावेज़ किसी खास प्रोग्रामिंग भाषा पर निर्भर नहीं है; आपका क्लाइंट ऐसी किसी भी प्रोग्रामिंग भाषा का इस्तेमाल करके सर्वर से इंटरैक्ट कर सकता है जो आपको एचटीटीपी अनुरोध जारी करने और एक्सएमएल-आधारित जवाबों को पार्स करने देती हो.

उदाहरण

यहां दिए गए उदाहरण, सामान्य एपीआई पर भेजे गए ऐसे डेटा एपीआई प्रोटोकॉल के अनुरोध दिखाते हैं जो आपको मिल सकते हैं. अलग-अलग प्रोग्रामिंग भाषाओं का इस्तेमाल करके अनुरोध भेजने के तरीके के उदाहरणों के लिए, भाषा के हिसाब से नमूने और क्लाइंट लाइब्रेरी देखें. खास Google सेवाओं के साथ Google डेटा एपीआई का इस्तेमाल करने के बारे में जानकारी पाने के लिए, सेवा से जुड़े खास दस्तावेज़ देखें.

फ़ीड या दूसरे रिसॉर्स का अनुरोध करना

मान लें कि /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 अनुरोध भेजें और नई एंट्री का एक्सएमएल प्रज़ेंटेशन दें:

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>

एंट्री अपडेट करना

मौजूदा एंट्री को अपडेट करने के लिए, PUT का इस्तेमाल करें, साथ ही एंट्री के यूआरएल में बदलाव भी करें (जैसा कि पिछले उदाहरण में सर्वर ने <link rel="edit"> एलिमेंट में बताया था).

अगर आपका फ़ायरवॉल PUT की अनुमति नहीं देता है, तो एचटीटीपी 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>

ध्यान दें कि बदलाव यूआरआई बदल गया है; अब यह "/1/" के बजाय "/2/" पर खत्म होता है. एडिट यूआरआई का फ़ाइनल नंबर एक वर्शन नंबर है. वर्शन के बारे में ज़्यादा जानकारी के लिए, प्रोटोकॉल रेफ़रंस दस्तावेज़ का Optimize का एक जैसा होना सेक्शन देखें.

संदर्भ में नई एंट्री देखने के लिए, पूरे रिसॉर्स का फिर से अनुरोध करें:

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>

कोई प्रविष्टि हटाना

किसी मौजूदा एंट्री को मिटाने के लिए, उस एंट्री में बदलाव करने वाले यूआरआई (जैसा कि पिछले उदाहरण में सर्वर से मिला है) का इस्तेमाल करके DELETE का अनुरोध भेजें.

अगर आपका फ़ायरवॉल DELETE की अनुमति नहीं देता है, तो एचटीटीपी 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>

अगर इसे मिटाया नहीं जाता है, तो सर्वर गड़बड़ी कोड के साथ जवाब देता है. ज़्यादा जानकारी के लिए, प्रोटोकॉल रेफ़रंस दस्तावेज़ में एचटीटीपी स्टेटस कोड देखें.

अतिरिक्त रिसॉर्स

आपको तीसरे पक्ष के ये दस्तावेज़ उपयोगी लग सकते हैं:

वापस सबसे ऊपर जाएं