2015-09-11 6 views
8

self and related संदर्भ नीचे दिए गए JSONAPI संसाधन में भिन्न क्यों हैं? क्या वे एक ही संसाधन को इंगित नहीं कर रहे हैं? /articles/1/relationships/tags और /articles/1/tags पर जाने के बीच क्या अंतर है?JSONAPI - स्वयं के बीच अंतर और लिंक संसाधन से संबंधित

{ 
    "links": { 
    "self": "/articles/1/relationships/tags", 
    "related": "/articles/1/tags" 
    }, 
    "data": [ 
    { "type": "tags", "id": "2" }, 
    { "type": "tags", "id": "3" } 
    ] 
} 

उत्तर

8

आप यहां इसके बारे में पढ़ सकते हैं: https://github.com/json-api/json-api/issues/508

मूल रूप से, /articles/1/relationships/tags प्रतिक्रिया के साथ ऑब्जेक्ट होगा जो articles और tags के बीच संबंधों का प्रतिनिधित्व करता है। रिश्ते में हेरफेर और रिश्ते के साथ जुड़े हुए संसाधनों नहीं करने के लिए -

{ 
    "links": { 
    "self": "/articles/1/relationships/tags", 
    "related": "/articles/1/tags" 
    }, 
    "data": [ 
    { "type": "tags", "id": "2" }, 
    { "type": "tags", "id": "3" } 
    ] 
} 

यह प्रतिक्रिया केवल आवश्यक डेटा देता है (डेटा प्राथमिक डेटा विशेषता में): प्रतिक्रिया कुछ इस तरह (क्या आप अपने प्रश्न में डाल) हो सकता है । कहा जा रहा है, तो आप /articles/1/relationships/tags फोन करता हूँ अगर आप नए रिश्ते बनाने करना चाहते हैं, लेख के लिए एक नए टैग (रिश्ते मूल रूप से अद्यतन करना) जोड़ने के लिए, पढ़ जो टैग लेख के हैं (आप केवल उन पर खोज करने के लिए पहचान की जरूरत है सर्वर) या आलेख टैग हटाएं।

दूसरी ओर, /articles/1/tags बुला (लेख, रिश्तों, लिंक, और अन्य उच्च-स्तरीय ऐसे शामिल विशेषताओं प्राथमिक डेटा अन्य सभी गुण होते हैं कि वे साथ के रूप में टैग के साथ जवाब देंगे, टेक्स्ट, लिंक और/या jsonapi पर जोर दिया)।

+0

यदि आप रिश्ते बनाने या हटाने की कोशिश कर रहे हैं तो क्या आपको स्वयं लिंक पर एक पेलोड भेजने की आवश्यकता है? इसके अलावा इसका क्या अर्थ है: "पढ़ें कि कौन से टैग आलेख से संबंधित हैं (आपको केवल सर्वर पर उन्हें खोजने के लिए पहचान की आवश्यकता है)" आलेख से संबंधित टैग को पढ़ने के लिए लिंक क्या होगा? क्या यह रूट/आलेख/1/टैग पर जाने जैसा नहीं है? – Jwan622

0

वे अलग हैं। यहां मेरी परियोजना से एक उदाहरण दिया गया है।

प्रयास करें Get http://localhost:3000/phone-numbers/1/relationships/contact आप इस तरह प्रतिक्रिया मिल जाएगा: { "links": { "self": "http://localhost:3000/phone-numbers/1/relationships/contact", "related": "http://localhost:3000/phone-numbers/1/contact" }, "data": { "type": "contacts", "id": "1" } } आप नहीं मिला attributes और relationships जो शायद है आप प्राप्त करना चाहते हैं।

फिर प्रयास करें Get http://localhost:3000/phone-numbers/1/contact आप इस तरह प्रतिक्रिया मिल जाएगा: { "data": { "id": "1", "type": "contacts", "links": { "self": "http://localhost:3000/contacts/1" }, "attributes": { "name-first": "John", "name-last": "Doe", "email": "[email protected]", "twitter": null }, "relationships": { "phone-numbers": { "links": { "self": "http://localhost:3000/contacts/1/relationships/phone-numbers", "related": "http://localhost:3000/contacts/1/phone-numbers" } } } } } आप देख सकते हैं आप सभी जानकारी आप चाहते हैं, attributes और relationships सहित लिया गया।

लेकिन आपको पता होना चाहिए कि relationships कुछ उद्देश्य के लिए उपयोग किया जा सकता है। नमूना के रूप में http://jsonapi.org/format/#crud-updating-to-one-relationships पढ़ें।

संबंधित मुद्दे