2015-08-13 8 views
13

मैं jsonapi के डॉक्स के माध्यम से पढ़ने किया गया है के साथ संबंधों में एक बच्चे को इकाई बनाने के लिए और मैं चारों ओर यह कैसे व्यावहारिक है मेरे सिर लपेटो नहीं कर सकते। एक लेख टिप्पणी पहले से ही मौजूद होना चाहिए करने के लिए एक टिप्पणी जोड़ने के लिए डॉक्स के अनुसार।कैसे करने के लिए कई JSONAPI

POST /articles/1/relationships/comments HTTP/1.1 
Content-Type: application/vnd.api+json 
Accept: application/vnd.api+json 

{ 
    "data": [ 
    { "type": "comments", "id": "123" } 
    ] 
} 

यह सिर्फ एक गरीब उदाहरण है या वास्तव में आप एक टिप्पणी कि की कुल के लिए यह संबंधित ऊपर अनुरोध जारी करने से पहले एक इकाई से संबंधित नहीं है बनाने के लिए एक अनुरोध जारी करने के लिए चाहते हैं कल्पना करता है 2 अनुरोध?

यह प्रतीत होता है कि आप और अधिक संभावना इस तरह के अनुरोध जारी करने के लिए चाहते हो जाएगा:

POST /comments HTTP/1.1 
Content-Type: application/vnd.api+json 
Accept: application/vnd.api+json 

{ 
    "data": { 
    "type": "comments", 
    "attributes": { 
     "body": "blah blah blah" 
    }, 
    "relationships": { 
     "article": { 
     "data": { "type": "articles", "id": "45" } 
     } 
    } 
    } 
} 

या बेहतर अभी तक:

POST /articles/45/relationships/comments HTTP/1.1 
Content-Type: application/vnd.api+json 
Accept: application/vnd.api+json 

{ 
    "data": [ 
    { 
     "type": "comments", 
     "attributes": { 
     "body": "blah blah blah" 
     } 
    } 
    ] 
} 
+0

मैंने चर्चा.jsonapi.org पर एक बहुत ही समान प्रश्न पूछा है: http://discuss.jsonapi.org/t/how-should-i-create-a-resource-as-a-relationship/ 29 9/2 –

उत्तर

1

अनुसार JSONAPI's guide on creating resources के लिए, निम्न संसाधन सृजन अनुरोध है, जो दिखता है ओपी के पहले सुझाव के समान, एक वैध अनुरोध है।

POST /photos HTTP/1.1 
Content-Type: application/vnd.api+json 
Accept: application/vnd.api+json 

{ 
    "data": { 
    "type": "photos", 
    "attributes": { 
     "title": "Ember Hamster", 
     "src": "http://example.com/images/productivity.png" 
    }, 
    "relationships": { 
     "photographer": { 
     "data": { "type": "people", "id": "9" } 
     } 
    } 
    } 
} 
0

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

एक client generated आईडी कि डेटा के बगल में पारित हो जाता है की एक धारणा है, लेकिन है कि मान लिया गया है ग्राहक को एक वैश्विक रूप से अद्वितीय आईडी, टिप्पणी के मामले में, एक ग्राहक निश्चित रूप से नहीं है जो उत्पादन में सक्षम है।

एक सर्वर करने के लिए एक अनुरोध के साथ एक ग्राहक द्वारा उत्पन्न ID स्वीकार कर सकते हैं एक संसाधन पैदा करते हैं। एक आईडी, एक आईडी कुंजी के साथ निर्दिष्ट किया जाना चाहिए जिसका मूल्य एक सार्वभौमिक अद्वितीय पहचानकर्ता होना चाहिए। आरएफसी 4122 [RFC4122] में वर्णित के रूप ग्राहक एक ठीक से उत्पन्न होती है और स्वरूपित UUID उपयोग करना चाहिए।

+0

कोई ग्राहक टिप्पणियों के लिए GUID नहीं बना सकता है? –

+0

मैं आम तौर पर एक गरीब उदाहरण होने के लिए बोल रहा हूं। केंद्रीय समन्वय के बिना या एक दूसरे के बीच अतिरिक्त संदेश का आदान-प्रदान, वितरित ग्राहक वैश्विक विशिष्टता के बारे में कोई गारंटी नहीं दे सकते हैं। – xavier

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