软件开发定制API 风格 (三):RESTful & gRPC

  VS  gRPC

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

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

练习

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

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

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

    

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发