REST, JSON veya HTTP / 1.1 gerektirmez
HTTP / 2 üzerinden protobuf mesajları (veya her neyse) gönderen bir RESTful hizmeti basit bir şekilde oluşturabilirsiniz.
HTTP / 2 üzerinden JSON gönderen RESTful hizmetleri oluşturabilirsiniz.
HTTP / 1.1 üzerinden protobuf mesajları gönderen RESTful hizmetleri oluşturabilirsiniz.
RESTful hizmetleri, HTTP / xx'in üstünde bir "hack" değildir, HTTP'nin herhangi bir sürümünü başarılı kılan temel mimari ilkeleri izleyen hizmetlerdir (GET isteklerinin önbelleğe alınabilirliği ve PUT isteklerinin tekrar oynatılabilirliği gibi).
gRPC, SOAP, vb. diğerleri daha çok hacks gibidir - HTTP üzerinden RPC tarzı hizmetleri tünellemek, güvenlik duvarı ve ara kutu kısıtlamalarını yönlendirmek için HTTP'nin üstüne hackler. Bu mutlaka kötü bir şey değil. Bazen bir REST yerine RPC tarzı bir hizmet isteyebilirsiniz ve orta kutuların değiştirilmesinin zor olduğu bir dünyada yaşamak zorundayız.
REST'in gerçek tanımını okumak için zamanınız yoksa:
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Her zaman TLDR vardır; wikipedia'daki sürüm:
https://en.wikipedia.org/wiki/Representational_state_transfer
RPC tarzı bir hizmete ihtiyacınız varsa, elbette, gRPC harika. İnternette yaşamak istiyorsanız veya RESTful tarzı bir hizmetle birlikte gelen tüm avantajlardan yararlanmak istiyorsanız, o zaman bir RESTful tarzı hizmet oluşturun. Ayrıca, dinlendirici hizmetinizde verileri JSON biçiminde serileştirmek / seri durumdan çıkarmak çok yavaşsa, protobuf veya her neyse kullanmak tamamen uygundur.
GRPC herhangi bir şeyin 2. sürümü ise, bu SOAP'ın 2. sürümüdür. SABUN gibi korkunç olmayan bir tane.
Ve hayır, GET isteğinizde "herhangi bir işlevi arayamazsınız" ve bir RESTful hizmetine sahip olamazsınız.
Son bir şey: Eğer bir RESTful hizmeti üzerinden protobuf kullanacaksanız, lütfen içerik türü başlıklarını vb. Kullanarak doğru yapın. Bununla hem JSON hem de protobuf'u kolayca destekleyebilirsiniz.
SABUN kutumdan şimdi aşağı iniyorum ..;)