2013-01-06 32 views
17

आरईएसटी पर पढ़ने वाले सभी लेख और पुस्तकें आपके हाइपरमीडिया प्रतिक्रियाओं के "स्वयं" संबंध जोड़ने के महत्व को दोहराती हैं लेकिन वे सभी कारणों से प्रकाश डालती हैं और मामलों का उपयोग करती हैं।हाइपर्मियाडिया एपीआई में स्वयं लिंक का महत्व क्या है?

आपको स्वयं लिंक क्यों जोड़ना चाहिए और यह कैसे उपयोगी है?

उत्तर

16

मुख्य कारण यह है कि क्लाइंट (और यहां तक ​​कि कुछ सर्वर) प्रतिनिधित्व के साथ प्रतिनिधित्व के स्थान को संग्रहीत नहीं करते हैं। उदाहरण के लिए, यदि आप wget http://.../foo.json, तो प्रतिनिधित्व डिस्क पर सहेजा जाएगा, लेकिन यूआरआई जिस पर इसे लाया गया था, वह नहीं होगा। अब हल करने के विरुद्ध जो एक आधार हो सकता है

  1. दस्तावेज़ में सापेक्ष लिंक, और इसलिए "टूटे" हो जाएगा;: यदि कोई "स्व" लिंक प्रतिनिधित्व में एम्बेडेड है, यह दो समस्याओं का कारण बनता और

  2. ग्राहक के पास कहां से कोई एम्बेडेड अवधारणा नहीं होगी PUT दस्तावेज़ को सर्वर पर वापस संशोधित करते हैं यदि वे इसे संशोधित करते हैं। कुछ ग्राहक स्वतंत्र रूप से इस जानकारी को बनाए रखते हैं, लेकिन अधिकांश नहीं करते हैं।

यह समझना महत्वपूर्ण है कि अभ्यावेदन एक जीवन अच्छी तरह से बाहर HTTP बातचीत हो सकती है महत्वपूर्ण है, और यहां तक ​​कि अन्य प्रोटोकॉल (ई-मेल, एफ़टीपी, एक किताब में, आदि) के माध्यम से स्थानांतरित किया जा सकता। इसलिए एक अनुभवी मीडिया-प्रकार डिजाइनर आमतौर पर "स्वयं" लिंक शामिल करेगा।

1

जब कोई संसाधन लौटाया जाता है, तो यह पूर्ण प्रतिनिधित्व नहीं हो सकता है। self लिंक को उस पूर्ण प्रतिनिधित्व

उदाहरण के लिए एक यूआरएल प्रदान करना चाहिए।

GET /objects

[ 
    { 
    "name": "tech", 
    "links": [ 
     "rel": "self", 
     "href": "/objects/1" 
    ] 
    }, 
    { 
    "name": "book", 
    "links": [ 
     "rel": "self", 
     "href": "/objects/2" 
    ] 
    } 
] 

GET /objects/1

{ 
    "name": "tech", 
    "ratio": 1, 
    "precision": 2, 
    "links": [ 
    { 
     "rel": "self", 
     "href": "/objects/1" 
    } 
    ] 
}