REST को JSON या HTTP / 1.1 की आवश्यकता नहीं है
आप HTTP / 2 के ऊपर प्रोटेस्ट संदेश (या जो भी) भेजता है, एक तुच्छ सेवा का निर्माण कर सकते हैं
आप RESTful सेवाओं का निर्माण कर सकते हैं जो JSON को HTTP / 2 पर भेजती हैं
आप RESTful सेवाओं का निर्माण कर सकते हैं जो HTTP / 1.1 पर प्रोटोबॉफ़ संदेश भेजती हैं
Restful सेवाएं HTTP / xx के शीर्ष पर "हैक" नहीं हैं, वे मूलभूत आर्किटेक्चर प्रिंसिपलों का अनुसरण करने वाली सेवाएं हैं जिन्होंने HTTP के किसी भी संस्करण को सफल बनाया है (जैसे GET अनुरोधों की कैशबिलिटी और PUT अनुरोधों की पुनरावृत्ति)।
जीआरपीसी, सोप, एट। अल हैक की तरह अधिक हैं - फ़ायरवॉल और फ़ायरफ़ॉक्स प्रतिबंध के आसपास मार्ग करने के लिए HTTP पर सुरंग RPC- शैली सेवाओं के लिए HTTP के शीर्ष पर हैक। जरूरी नहीं कि वह बुरी चीज हो। कभी-कभी आप REST के बजाय RPC- शैली सेवा चाहते हैं, और हम ऐसी दुनिया में रहते हैं, जहां मिडबॉक्स को प्रतिस्थापित करना कठिन है।
यदि आपके पास REST की वास्तविक परिभाषा पर पढ़ने का समय नहीं है:
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
हमेशा TLDR होता है; विकिपीडिया पर संस्करण:
https://en.wikipedia.org/wiki/Representational_state_transfer
यदि आपको RPC- शैली सेवा की आवश्यकता है, तो निश्चित रूप से, gRPC बढ़िया है। यदि आप वेब पर रहना चाहते हैं, या आप चाहते हैं कि एक RESTful शैली सेवा के साथ आने वाले सभी लाभ हों, तो एक RESTIN शैली सेवा बनाएँ। और अगर यह आपकी बाकी सेवा में JSON प्रारूप में डेटा को क्रमांकित / डिस्क्रिअलाइज़ करने के लिए बहुत धीमा है, तो प्रोटोबॉफ़ या जो भी उपयोग करना पूरी तरह से ठीक है।
यदि gRPC किसी भी चीज का संस्करण 2 है, तो यह SOAP का संस्करण 2 है। एक जो भयानक नहीं है, सोप की तरह।
और, नहीं, आप अपने GET अनुरोध में केवल "किसी भी फ़ंक्शन को कॉल नहीं कर सकते" और एक RESTful सेवा है।
एक आखिरी बात: यदि आप किसी RESTful सेवा पर प्रोटोबोफ़्स का उपयोग करने जा रहे हैं, तो कृपया इसे सही करें, सामग्री प्रकार हेडर इत्यादि का उपयोग करके, इसके साथ ही आप JSON और प्रोटोबॉफ़ दोनों का आसानी से समर्थन कर सकते हैं।
अब मेरे SOAP बॉक्स से नीचे जा रहे हैं ..;)