构建 API 是现代工程中开发人员的最重要任务之一。这些 API 允许不同的系统进行通信和数据交换。虽然 REST 多年来一直是实现 API 的事实标准,但今天也有新兴的标准,如 gRPC 和 GraphQL。
什么是 API?
“应用程序编程接口”(API)是各种软件服务之间的通信渠道。传输请求和响应的应用程序分别称为客户端和服务器。API 是一个外部软件组件,使程序功能可供其他程序使用。
在下面的蜜蜂 🐝 插图中,花朵充当服务器,蜂巢充当客户端,蜜蜂提供通信手段(REST API 请求)。

什么是 API?(图片来源:Rapid API)
存在不同的 API 架构或协议,如 REST、gRPC 和 GraphQL。
为什么 gRPC 很重要?
gRPC 是由 Google 开发的高性能、开源、通用远程过程调用(RPC)框架。它使用 Protocol Buffers (protobuf) 作为其接口定义语言。协议缓冲区是一种非常有效和快速的网络数据序列化方式。这项技术使用 HTTP 2.0 协议 实现了 RPC API;然而,服务器和 API 开发者都无法访问 HTTP。它遵循 客户端-响应通信模型,由于 gRPC 能够接收来自多个客户端的多个请求并同时处理它们,因此支持双向通信和流媒体。然而,gRPC 在浏览器支持方面仍然 相当有限。
如前所述,gRPC 默认使用 Protocol Buffers 来序列化有效载荷数据。Protocol Buffers 是紧凑的二进制序列化格式,用于结构化数据。它们使用在 .proto 文件中定义的模式,允许在不同语言之间进行高效的编码和解码。它们提供了比传统的 JSON 或 XML 更小的尺寸和更快的处理速度等优势。
gRPC 的优点:
1.速度。 由于 HTTP/2,gRPC 比 HTTP/1.1 上的 REST 更快、更高效。2.多语言支持。 提供工具在多种语言中生成客户端和服务器代码。3.流媒体: 支持双向流媒体,允许更互动的实时通信。4.截止时间/超时: 内置支持确保请求不会挂起。它自动解决重试、网络问题等。5.生态系统: 支持身份验证、负载均衡等。
gRPC 的缺点:
1.复杂: 您必须了解 Protocol Buffers 和 gRPC API。还必须预先定义模式。2.浏览器支持有限: 由于依赖 HTTP/2,原生浏览器支持有限。3.工具: 虽然在增长,但 gRPC 工具的成熟度不如 REST。您可以使用 gRPCurl 或 Postman 来测试这些 API。4.不可读性: 由于它们是二进制的,它们难以调试,就像您可以使用基于文本的格式(如 XML 或 JSON)那样。