总结
在本章中,我们探讨了在设计 API 时需要考虑的主要因素。大部分内容与 Protobuf
相关,因为它是我们 API 的接口,负责序列化/反序列化。我们首先看到,选择合适的整数类型非常重要,这不仅会影响负载大小,还会影响 API 的演进。
接下来,我们讨论了选择合适字段标签的重要性。由于标签会与数据一起序列化,而且标签是作为 varint
序列化的,因此标签越大,负载就越大。
然后,我们学习了如何利用 FieldMasks
来选择我们需要的数据,避免过度获取问题。虽然这一概念在 gRPC Go 中并没有得到充分发展,但在其他实现中被广泛使用。这显著减少了我们在网络上传输的负载。
最后,我们了解了在 Protobuf
中使用重复字段时需要小心。因为如果我们在复杂类型上使用它们,就会浪费一些字节。然而,不能因此避免使用重复字段,有时它们是正确的数据结构。
在下一章中,我们将讨论如何使 API 调用更加高效和安全。