REST API में लिंक rel = "self" का क्या मतलब है?


11

मैं अक्सर HTML दस्तावेजों में निम्नलिखित देखता हूं

<link rel="self" href="http://example.com/something">

या JSON में इस तरह

 link: {
     rel="self",
     href="http://example.com/something"
 }

या एक्सएमएल में

 <atom:link rel="self" href="http://example.com/something" />

इसलिए मेरे कुछ सवाल थे:

  1. यह लिंक क्यों शामिल है? क्या फायदा होता है? (कृपया मुझे बताएं कि इसका एक कारण है और यह सिर्फ एक "अच्छा अभ्यास" ताबीज नहीं है)
  2. मुझे अपने ग्राहकों में इस लिंक का कैसे फायदा उठाना चाहिए? इस लिंक के लिए उपयोग मामला क्या हैं?
  3. मुझे इस लिंक का उपयोग कब नहीं करना चाहिए ? इसे कब शामिल करना व्यर्थ है?

3
"इस पृष्ठ को बुकमार्क करने के लिए यहां क्लिक करें" एक उपयोग मामला होगा जहां आप "स्व" संदर्भ का उपयोग कर सकते हैं। आम तौर पर, क्योंकि REST स्टेटलेस है, सर्वर के पास यह जानने का कोई तरीका नहीं है कि अनुरोध कहां से आया है, इसलिए यह पूरी तरह से संभव है कि जिस पृष्ठ पर वह वापस लौटेगा उसे अपने यूआरआई को जानना होगा।
रोजर

इस टिप्पणी की तरह लगता है एक बहुत अच्छा जवाब होगा :)
माइक चैंबरलेन

जवाबों:


8

यह एक आत्म संदर्भ है, इसलिए क्लाइंट को पता चलेगा कि आईआरआई ( http://example.com/something) उस संसाधन का एक पहचानकर्ता है जो प्रतिनिधित्व के बारे में है।

यह महत्वपूर्ण हो सकता है जब आपके संसाधन में कई पहचानकर्ता हो सकते हैं, उदाहरण के लिए http://example.com/users/1और http://example.com/users/1?fields="name"एक ही संसाधन की पहचान कर सकते हैं, लेकिन उन पर एक GET परिणाम और अधिक प्रतिनिधित्व कर सकते हैं।

HAL जैसे मीडिया प्रकारों द्वारा आप इसका उपयोग एम्बेडेड संसाधनों की पहचान करने के लिए भी करते हैं। उदाहरण के लिए:

{
    "nick": "John",
    "_embedded": {
        "cars": {
            "items": [
                //...
            ],
            "_links": {
                "self": {
                    "href": "http://example.com/users/john/cars"
                }
            }
        }
    },
    "_links": {
        "self": {
            "href": "http://example.com/users/john"
        }
    }
}

IRI क्या है? उनमें से कोई भी en.wikipedia.org/wiki/IRI ?
मैरियन पाडज़िओच

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