HATEOAS (REST-आर्किटेक्चर) के लिए वास्तविक उदाहरण [बंद]


140

जैसा कि सभी ने देखा होगा कि जंगली में बहुत सारे नकली / अल्पविकसित REST-API हैं (जो HTTP-API को कार्यान्वित करते हैं और हाइपरटेक्स्ट-ए-ऑफ-द-इंजन-ऑफ-एप्लिकेशन-राज्य की आवश्यकता का पालन किए बिना इसे REST कहते हैं, जिसने नेतृत्व किया था) रॉय टी। फील्डिंग के प्रसिद्ध शेख़ी में , वह आदमी जिसने पहले रेस्ट-प्रतिमान निर्दिष्ट किया था)।

मैं राज्य के संक्रमण के लिए संबंधित एप्लिकेशन-विशिष्ट मीडिया-प्रकार की परिभाषाओं के साथ वास्तव में संचालित हाइपरटेक्स्ट संचालित रीस्ट-कार्यान्वयन के किसी भी व्यावहारिक उदाहरण को खोजने में असमर्थ रहा हूं।

क्या ऐसे कार्यान्वयन के सार्वजनिक रूप से सुलभ उदाहरण हैं?


3
मुझे यह दिलचस्प लगता है क्योंकि कई लोग दावा करते हैं कि आरईएसटी "आसान" है, लेकिन फील्डिंग खुद कहती है कि हालांकि यह एक सरल वास्तुकला है, लेकिन इसके साथ एक एप्लिकेशन डिजाइन करना सरल नहीं है।
aehlke

3
वैसे, यह HATEOAS होना चाहिए HATEOS नहीं, बाद में Google अच्छी तरह से नहीं होता है।
डेविड रौसेल


2
पेपैल इसे उपयोग करने के लिए लगता है: developer.paypal.com/docs/integration/direct/…
एंड्रयू थडियस मार्टिन

क्या रॉय फील्डिंग ने खुद कभी हेटोस का उपयोग करके एक एप्लिकेशन बनाया है?
systemovich

जवाबों:


102

यह चल रहे कोड के अर्थ में एक कार्यान्वयन नहीं है, लेकिन मैं वास्तव में InfoQ पर " कैसे एक कप कॉफी प्राप्त करें " लेख पसंद करता हूं। यह Starbucks पर एक RESTful प्रोटोकॉल के रूप में कॉफी ऑर्डर करने की प्रक्रिया का वर्णन करता है। यह विशिष्ट से परे चला जाता है "सब कुछ एक संसाधन है" बाकी परिचयात्मक लेख और HATEOAS पर केंद्रित है। अत्यधिक सिफारिशित।


5
जिम वेबर की किताब "रेस्ट इन प्रैक्टिस", सैयस परस्टाटिडिस और इयान रॉबिन्सन काफी उपयोगी है
डोम्रेरीओम

2
लेख ठीक है, लेकिन दुर्भाग्यवश इसका वर्णन करने वाला एपीआई हेटो सिद्धांत का कड़ाई से पालन नहीं करता है क्योंकि यह कस्टम मीडिया प्रकारों का उपयोग नहीं करता है। अगर सब कुछ एप्लिकेशन / xml है, तो क्लाइंट को कैसे पता चलेगा कि किस तरह हेरफेर करना है (जैसे डिसेरिएलाइज़, पार्स, डिस्प्ले)। यह इस जानकारी को पारित करने के कुछ गैर-मानक तरीकों पर निर्भर करेगा, जैसे कि प्रलेखन का मतलब मनुष्यों द्वारा पढ़ा जाना है।
यगोरमुर्ती

21

सन क्लाउड एपीआई के बारे में कैसे ? परिचय से:

एपीआई यूआरआई अंतरिक्ष में कोई विशेष संरचना निर्धारित नहीं करता है। शुरुआती बिंदु एक यूआरआई है, जो क्लाउड सेवा प्रदाता द्वारा आपूर्ति की जाती है, जो क्लाउड की पहचान करता है। क्लाउड के प्रतिनिधित्व में क्लाउड में अन्य संसाधनों के लिए URI होते हैं, और उन ऑपरेशनों के लिए भी जो उन पर किए जा सकते हैं (उदाहरण के लिए वर्चुअल मशीन की तैनाती और शुरुआत)।

पृष्ठभूमि की कहानी भी उपयोगी हो सकता है।


2
यह बैकस्टोरी है जो मुझे HATEAOS पथ से शुरू हुई।
साइबरफोन

3
सभी लिंक मर चुके हैं
Roeland Van Heddegem

"हमें खेद है कि kenai.com साइट बंद हो गई है।"
निक रोलैंडो

@NickRolando, मैंने लिंक को बदल दिया।
रिच अपोडका

@RichApodaca, बैकस्टोरी लिंक मृत है।
वसंत गणेश के

7

नेटफ्लिक्स में HATEOAS पर आधारित एक REST API है जिसमें संसाधनों के भाग के रूप में लिंक शामिल हैं।


1
और अब स्थिति कोड 404 है।
naXa

1
@Ill Sargent लिंक टूट गया है, कृपया अपडेट करें।
गोवि ० स ०

क्षमा करें, ऐसा लगता है कि नेटफ्लिक्स इसे नीचे ले गया और कुछ और के साथ चला गया।
विल सर्जेंट

2
लिंक-केवल उत्तर कम प्रासंगिक होते हैं जब ऐसे लिंक मर जाते हैं।
nyedidikeke

@nyedidikeke यह एक लिंक है लेकिन इस संदर्भ के लिए एक उत्तर, आपको बस पोस्ट को संपादित करके लिंक को ठीक करना होगा!
अल-मोतफर 10

3

क्या वास्तव में रॉय के चौथे बिंदु में संबोधित किए गए सन क्लाउड एपीआई की पुनर्स्थापना नहीं है:

REST API को निश्चित संसाधन नाम या पदानुक्रम (क्लाइंट और सर्वर का स्पष्ट युग्मन) को परिभाषित नहीं करना चाहिए। नौकरों को अपने स्वयं के नामस्थान को नियंत्रित करने की स्वतंत्रता होनी चाहिए। इसके बजाय, सर्वरों को क्लाइंट यूआरआई और यूआरआई टेम्प्लेट्स में उपयुक्त यूआरआई का निर्माण करने के तरीके के बारे में निर्देश देने की अनुमति दें, मीडिया प्रकारों और लिंक संबंधों के भीतर उन निर्देशों को परिभाषित करके। [यहाँ विफलता का तात्पर्य है कि ग्राहकों को एक डोमेन-विशिष्ट मानक, जो कि RPC के कार्यात्मक युग्मन के बराबर डेटा-उन्मुख है) के रूप में बैंड जानकारी से बाहर होने के कारण एक संसाधन संरचना मान रहे हैं।

उदाहरण 1 परिभाषित हिरचे में निश्चित संसाधन नाम:

सन क्लाउड एपीआई से: "... एक वीडीसी के प्रतिनिधित्व में क्लस्टर के प्रतिनिधित्व शामिल होंगे जो इसमें निवास करते हैं, जिसमें प्रत्येक क्लस्टर के भीतर वीएम का प्रतिनिधित्व शामिल है।"

उदाहरण 2 बाहर की सूचना, जैसे कि डोमेन-विशिष्ट मानक:

आपको यह जानने के लिए विकि पृष्ठ सामग्री (आउट-ऑफ-बैंड जानकारी) होनी चाहिए कि क्लाउड संसाधन फ़ील्ड "uri" के लिए "संसाधन संचार तंत्र" GET है।


2
आप सही हैं, यह बहुत भ्रामक है। हालांकि, रॉय मीडिया प्रकार की सामग्री के भीतर नहीं, बल्कि यूरी स्पेस में संसाधन नामों के बारे में बात कर रहे हैं। किसी भी समय क्लस्टर का उपयोग करने के लिए उपयोग किए जाने वाले यूरि को बदलने के लिए सूर्य स्वतंत्र है। जाहिर है, यह मीडिया प्रकार का एक नया संस्करण बनाए बिना प्रतिनिधित्व के अंदर "समूह" शब्द को "समूह" में नहीं बदल सकता है, लेकिन यह यूआरआई को कुछ भी बदल सकता है।
डारेल मिलर

4
हम जानते हैं कि सन एपीआई HTTP को एक समान इंटरफ़ेस के रूप में उपयोग करता है, इसलिए क्लाइंट को यह जानने के लिए विकी-पेज देखने की आवश्यकता नहीं है कि GET क्लाउड संसाधन के लिए एक मान्य क्रिया है। यह या तो यह जानने की कोशिश कर सकता है कि GET एक सुरक्षित क्रिया है, या यह उपलब्ध होने पर यह निर्धारित करने के लिए विकल्प का उपयोग कर सकता है।
डारेल मिलर

3

मुझे एहसास हुआ कि यह कुछ समय पहले पूछा गया था, लेकिन मैंने एक साधारण उदाहरण के लिए "उचित" REST एपीआई प्रवाह का प्रदर्शन करने में एक छुरा लिया। मैंने REST के लिए रॉय के नियमों का पालन करने की कोशिश की - शायद यह मदद कर सके: REST का उपयोग करके API उदाहरण

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.