随笔 - 2  文章 - 0  评论 - 0  阅读 - 732

RESTful.api VS gRPC

 

对比项  RESTful gRPC
优点
  • 相对来说,REST更规范、标准、通用,无论哪种语言都支持 HTTP 协议,可以对接外部很多系统,只要满足 HTTP 调用即可。
  • 通常采用 JSON 作为数据通信格式,可读性强,开发调试都很方便。
  • 客户端与服务端之间 松耦合,让变更更加方便。
  • 屏蔽网路细节,像调用本地方法一样,调用远程接口。
  • 通常采用 Protocol Buffers 作为数据传输格式,这种格式数据传输效率高。
  • 基于 HTTP/2 协议标准,性能更高。
缺点
  • 扩展性差:随着需求的变化,单个 RESTful 接口可能会变得越来越臃肿。
  • 性能相对于 gRPC 偏低。
  • Protobuf 数据格式可读性差。
  • gRPC 不支持浏览器调用,因此不能用作外部服务。
  • 调试不方便,没有像 RESTful 中的 postman 和 curl 之类的调试工具。
适用场景
  • 接口对外,需要接口规范易懂。
  • 对系统性能要求不高。
  • 提供的 API 天生围绕资源、对象、管理展开。
  • 消息密集型、对系统性能和延时要求比较高。
  • 偏向内部的 API。
  • 提供的 API 很难就行资源、对象抽象。

 

                更多的时候,RESTful API 和 gRPC API 是一种合作的关系,对内业务使用 gRPC API,对外业务使用 RESTful API。

          

                                                     

 

 

 

练习
已有一个 gRPC 服务,但是却希望该服务同时也能提供 RESTful API 接口,这该如何实现?

希望用RPC作为内部API的通讯,同时也想对外提供RESTful API,又不想写两套,

可以使用gRPC Gateway 插件,在生成RPC的同时也生成RESTful web server。

grpc-gateway

 

        

 

posted on   帅气的小武  阅读(264)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示