REST ne nécessite ni JSON ni HTTP / 1.1
Vous pouvez facilement créer un service RESTful qui envoie des messages protobuf (ou autre) sur HTTP / 2
Vous pouvez créer des services RESTful qui envoient JSON sur HTTP / 2
Vous pouvez créer des services RESTful qui envoient des messages protobuf via HTTP / 1.1
Les services RESTful ne sont pas un "hack" au-dessus de HTTP / xx, ce sont des services suivant les principes architecturaux fondamentaux qui ont permis à toute version de HTTP de réussir (comme la capacité de cache des requêtes GET et la rejouabilité des requêtes PUT).
gRPC, SOAP, et. tous ressemblent plus à des hacks - des hacks en plus de HTTP pour tunneler des services de style RPC sur HTTP, pour contourner les restrictions de pare-feu et de boîtier de médiation. Ce n'est pas nécessairement une mauvaise chose. Parfois, vous voudrez peut-être un service de style RPC au lieu d'un service REST, et nous devons vivre dans un monde où les boîtiers de médiation sont difficiles à remplacer.
Si vous n'avez pas le temps de lire la définition réelle de REST:
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Il y a toujours le TLDR; version sur wikipedia:
https://en.wikipedia.org/wiki/Representational_state_transfer
Si vous avez besoin d'un service de style RPC, bien sûr, gRPC est génial. Si vous voulez vivre sur le Web ou si vous voulez tous les avantages d'un service de style RESTful, créez un service de style RESTful. Et s'il est trop lent de sérialiser / désérialiser les données au format JSON dans votre service reposant, il est parfaitement acceptable d'utiliser protobuf ou autre.
Si gRPC est une version 2 de quoi que ce soit, c'est une version 2 de SOAP. Un qui n'est pas terrible, comme SOAP.
Et, non, vous ne pouvez pas simplement "appeler n'importe quelle fonction" dans votre requête GET et avoir un service RESTful.
Une dernière chose: si vous comptez utiliser protobufs sur un service RESTful, faites-le correctement, en utilisant les en-têtes de type de contenu, etc. Avec cela, vous pouvez facilement supporter à la fois JSON ET protobuf.
Quitter ma boîte SOAP maintenant ..;)