मैं त्रिस्तरीय प्रणाली के लिए REST API डिज़ाइन कर रहा हूं जैसे: Client application
-> Front-end API cloud server
-> user's home API server (Home)
।
Home
एक घरेलू उपकरण है, और यह Front-end
वेबसोकेट या एक लंबे सर्वेक्षण के माध्यम से संबंध बनाए रखने के लिए माना जाता है (यह पहला स्थान है जहां हम REST का उल्लंघन कर रहे हैं। यह बाद में और भी खराब हो जाता है) । Front-end
ज्यादातर सुरंग कनेक्शन और कॉल के कुछ Client
अनुरोधों को Home
स्वयं करने का अनुरोध करती हैं। कभी-कभी Home
सूचनाएं भेजता है Client
।
Front-end
और Home
मूल रूप से एक ही एपीआई है; LAN पर सीधे Client
कनेक्ट हो सकता है Home
। इस मामले में, Home
कुछ Client
कार्यों को Front-end
स्वयं ही पंजीकृत करने की आवश्यकता है।
इस प्रणाली में बाकी के लिए नियम हैं:
- REST मानव-पठनीय है;
- REST में क्रिया वस्तुओं की एक अच्छी तरह से परिभाषित मानचित्रण (जैसे CRUD), प्रोटोकॉल ऑब्जेक्ट्स के लिए संज्ञा और प्रतिक्रिया कोड हैं;
- यह HTTP पर काम करता है और सभी संभावित परदे के पीछे से गुजरता है;
अन्य कंट्रास्ट हैं:
- हमें न केवल एक अनुरोध-प्रतिक्रिया संचार शैली की आवश्यकता है, बल्कि एक प्रकाशन-सदस्यता भी चाहिए;
- तीन-स्तरीय संचार त्रुटियों को संभालने के लिए HTTP त्रुटि कोड अपर्याप्त हो सकता है; केवल कुछ आवश्यक कनेक्शन टूट गया है और वहाँ होना चाहिए था पता लगाने के लिए कुछ async कॉल करने के लिए
Front-end
वापस आ सकता है ;202 Accepted
Home
503
Home
को संदेश भेजने की आवश्यकता हैClient
।Client
चुनाव करना होगाFront-end
या संबंध बनाए रखना होगा।
हम प्रकाशित / सदस्यता कार्यक्षमता प्राप्त करने के लिए Websocket पर WAMP / Autobahn पर विचार कर रहे हैं , जब उसने मुझे मारा कि यह पहले से ही संदेश कतार की तरह लग रहा है।
क्या यह परिवहन के रूप में मैसेजिंग कतार का मूल्यांकन करने लायक है?
संदेश कतार विरोधाभास की तरह लग रहे हैं:
- मुझे संदेश स्तर पर CRUD क्रिया और त्रुटि कोड को स्वयं परिभाषित करना होगा।
- मैंने "उच्च रखरखाव लागत" के बारे में कुछ पढ़ा, लेकिन इसका क्या मतलब है?
ये विचार कितने गंभीर हैं?
@Jimmy Hoffa
मान्य बिंदु, धन्यवाद। यह सही है, लेकिन पूरी तरह से नहीं। यह एक आम डेटाबेस, भंडारण और इतने पर है। @Javier
धन्यवाद, यह उत्तर का एक अच्छा हिस्सा है।
@Mike Brown
बिल्कुल सही। कृपया कीजिए।