IMO, मुख्य बिंदु क्रिया बनाम संसाधन अभिविन्यास है। REST संसाधन-उन्मुख है और CRUD संचालन के लिए अच्छी तरह से फिट बैठता है और इसके ज्ञात शब्दार्थ दिए गए पहले उपयोगकर्ता के लिए कुछ पूर्वानुमान प्रदान करता है, लेकिन जब विधियों या प्रक्रियाओं से लागू किया जाता है, तो आप संसाधन केंद्रित दुनिया को एक कृत्रिम अनुवाद प्रदान करने के लिए बाध्य करते हैं। दूसरी ओर आरपीसी पूरी तरह से एक्शन-ओरिएंटेड एपीआई के लिए उपयुक्त है, जहां आप सेवाओं को उजागर करते हैं, न कि सीआरयूडी-सक्षम संसाधन सेटों को।
इसमें कोई संदेह नहीं है कि REST अधिक लोकप्रिय है, यह निश्चित रूप से कुछ बिंदुओं को जोड़ता है यदि आप किसी तीसरे पक्ष को एपीआई को उजागर करना चाहते हैं।
यदि नहीं (उदाहरण के लिए एक एसपीएएक्स में एजेक्स फ्रंट-एंड बनाने के मामले में), मेरी पसंद आरपीसी है। विशेष रूप से JSON-RPC में, JSON स्कीमा को विवरण भाषा के रूप में संयोजित किया गया है, और उपयोग के मामले के आधार पर HTTP या Websockets पर ले जाया गया है।
JSON-RPC एक सरल और सुरुचिपूर्ण विनिर्देश है जो अनुरोध और प्रतिक्रिया को परिभाषित करता है JSON पेलोड को तुल्यकालिक या अतुल्यकालिक RPC में उपयोग किया जाता है।
JSON स्कीमा मसौदा विनिर्देश है जो JSON डेटा का वर्णन करने के उद्देश्य से JSON आधारित प्रारूप को परिभाषित करता है। JSON स्कीमा का उपयोग करके अपने सेवा इनपुट और आउटपुट संदेशों का वर्णन करके आप प्रयोज्यता से समझौता किए बिना संदेश संरचना में एक मनमानी जटिलता रख सकते हैं, और सेवा एकीकरण को स्वचालित किया जा सकता है।
ट्रांसपोर्ट प्रोटोकॉल (HTTP बनाम वेबसोकेट) की पसंद अलग-अलग कारकों पर निर्भर करती है, सबसे महत्वपूर्ण यह है कि आपको HTTP फीचर्स की आवश्यकता है (कैशिंग, रिवाइलेशन, सुरक्षा, बेरोजगारी, सामग्री-प्रकार, मल्टीपार्ट, ...) या क्या आपको एप्लिकेशन को इंटरचेंज करने की आवश्यकता है उच्च स्वतंत्रता पर संदेश।
अब तक यह मुद्दे पर मेरी व्यक्तिगत राय है, लेकिन अब कुछ ऐसा है जो वास्तव में उन जावा डेवलपर्स के लिए मददगार हो सकता है जो इन पंक्तियों को पढ़ रहे हैं, पिछले वर्ष के दौरान मैं जिस रूपरेखा पर काम कर रहा था, उसी प्रश्न से पैदा हुआ था जिसे आप अभी सोच रहे हैं। :
http://rpc.brutusin.org
आप यहां एक लाइव डेमो देख सकते हैं, जो कार्यात्मक परीक्षण के लिए अंतर्निहित रिपॉजिटरी ब्राउज़र दिखा रहा है (धन्यवाद JSON स्कीमा) और उदाहरण सेवाओं की एक श्रृंखला:
http://demo.rpc.brutusin.org
आशा है कि यह दोस्त की मदद करता है!
नाचो