Le REPOS ne nécessite pas de JSON ou HTTP/1.1
Vous pouvez trivialement construire un service RESTful qui envoie protobuf messages (ou autre) sur HTTP/2
Vous pouvez construire des services RESTful qui envoient JSON sur HTTP/2
Vous pouvez construire des services RESTful qui envoient protobuf messages sur HTTP/1.1
Services RESTful ne sont pas un "hack" sur le dessus de HTTP/x.x, ce sont des services suivants fondamentaux d'architecture qui ont fait une version de HTTP succès (comme la cachabilité des requêtes GET et la rejouabilité de METTRE les demandes).
gRPC, du SAVON, et. al sont plus comme des hacks - hacks sur le dessus de HTTP pour le tunnel de style RPC pour les services HTTP, pour contourner les pare-feu et middlebox restrictions. Ce n'est pas nécessairement une mauvaise chose. Parfois, vous pourriez voulez un style RPC service plutôt qu'à un RESTE un, et nous dois vivre dans un monde où middleboxes sont difficiles à remplacer.
Si vous n'avez pas le temps de lire sur la définition même de REPOS:
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Il y a toujours la TLDR; version sur wikipedia:
https://en.wikipedia.org/wiki/Representational_state_transfer
Si vous avez besoin d'un style RPC service, bien sûr, gRPC est grande. Si vous voulez vivre sur le web, ou si vous voulez tous les avantages qui viennent avec une bonne style de service, puis construire une RESTful service de style. Et si il est trop lent pour sérialiser/désérialiser des données au format JSON dans votre service restful, il est parfaitement OK pour utiliser protobuf ou quoi que ce soit.
Si gRPC est une version 2 de quoi que ce soit, c'est une version 2 de SAVON. Celui qui n'est pas terrible, comme le SAVON.
Et, non, vous ne pouvez pas simplement "appel une fonction" dans votre requête GET et avoir un service RESTful.
Une dernière chose: si tu vas en utiliser protobufs plus d'un service RESTful, merci de le faire à droite, en utilisant le type de contenu des en-têtes, etc. Avec cela, vous pouvez facilement prendre en charge à la fois JSON ET protobuf.
Démissionné de ma boîte à SAVON maintenant.. ;)