何时使用 GraphQL、gRPC 和 REST?

构建 API 是现代工程中开发人员的最重要任务之一。这些 API 允许不同的系统进行通信和数据交换。虽然 REST 多年来一直是实现 API 的事实标准,但今天也有新兴的标准,如 gRPC 和 GraphQL

什么是 API?

“应用程序编程接口”(API)是各种软件服务之间的通信渠道。传输请求和响应的应用程序分别称为客户端和服务器。API 是一个外部软件组件,使程序功能可供其他程序使用。

在下面的蜜蜂 🐝 插图中,花朵充当服务器,蜂巢充当客户端,蜜蜂提供通信手段(REST API 请求)。

b2f71097bcee831ba9be77197625847c.jpeg
0*mHdyF2gDD-ihbf77.jpeg

什么是 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)那样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小技术君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值