मेरे पास यह प्रश्न है जो थोड़ी देर के लिए मेरे सिर के माध्यम से घूम रहा है। आइए मान लीजिए कि हमने अलग-अलग परतों पर बैकएंड और फ्रंटएंड के साथ हमारी परियोजना को संरचित किया है। तो, दृश्यपटल से, हम एक costumer है, जो hal+json
प्रारूप पर आता है प्राप्त करना चाहते हैं:हेतेओस को फ्रंटेंड से कैसे संभाला जाना चाहिए?
GET /customers/1 HTTP/1.1
Accept: application/hal+json
{
"name": "Alice",
"links": [ {
"rel": "self",
"href": "http://localhost:8080/customer/1"
} {
"rel": "transactions",
"href": "http://localhost:8080/customer/1/transactions"
}]
}
फिर, दृश्यपटल से मैं सभी ग्राहक लेनदेन करना चाहते हैं। मेरा सवाल है: मुझे यूआरएल कैसे प्राप्त करना चाहिए? क्या यह प्रतिक्रिया से होना चाहिए? या मैं इसे आंतरिक रूप से बनाना चाहिए?
अगर हम पहले विकल्प के साथ जाते हैं, तो मुझे लगता है कि शायद यह तब तक सभी लिंक को फिर से शुरू करने के लिए सुरुचिपूर्ण नहीं होगा जब तक कि हम उसे प्राप्त न करें। साथ ही, ऐसी स्थिति हो सकती है जहां हमारे पास उस अनुरोध का लिंक न हो जो हम करना चाहते हैं।
यदि हम दूसरे विकल्प के साथ जाते हैं, तो मुझे समझ में नहीं आता कि उस यूआरएल को कैसे बनाया जाए यदि हमारे पास वास्तव में आईडी नहीं है। यदि नफरत लिंक के साथ आईडी को प्रतिस्थापित करता है तो मुझे नए ग्राहक लेनदेन कैसे बना सकते हैं और मुझे अब शरीर में ऑब्जेक्ट संदर्भ नहीं मिला है?
मैंने सोचा कि शायद सेवा को application/hal+json
(उपयोगकर्ताओं के लिए उन्मुख) और application/json
(ग्राहकों के लिए उन्मुख) का समर्थन करना चाहिए, लेकिन मुझे नहीं लगता कि यह आम तौर पर इसे कैसे किया जा रहा है।
आपको क्या लगता है?
क्या मामले में मैं प्रयोक्ता आईडी जो मैं एक अधिकार जोड़ना चाहते है? तो मुझे निर्दिष्ट उपयोगकर्ता के अधिकारियों का लिंक प्राप्त करने के लिए/उपयोगकर्ताओं को एक GET अनुरोध करना होगा। यह ठीक रहेगा? मैं एक के बजाय 2 अनुरोध कर रहा हूँ। आपके प्रतिक्रिया के लिए धन्येवाद! – jscherman
आपके पास बाहरी सिस्टम से कोई आईडी नहीं होनी चाहिए। आपके पास एक यूआरएल होना चाहिए और हाँ, यह 2 अनुरोध है ... जब तक कि सर्वर आपके इरादे को जानने के लिए पर्याप्त स्मार्ट न हो। तो उदाहरण के लिए यह आपके लिए लेनदेन संबंध एम्बेड कर सकता है। एक तरीका यह है कि आप इसे मंशा देकर उपभोक्ता के साथ हेडर के साथ पहचान कर सकते हैं। लेकिन 2 अनुरोधों के बारे में बहुत ज्यादा परेशान मत हो, यह भुगतान करने के लिए एक बहुत ही कम कीमत है। अब यदि आप आंतरिक हैं ... आप किसी भी HTTP एपीआई का उपयोग क्यों कर रहे हैं? बस डीबी/सिस्टम या रिकॉर्ड पर जाएं और आपको आवश्यक डेटा प्राप्त करें। –
मुझे लगता है कि मुझे आपका अंक मिला है। धन्यवाद! – jscherman