SOAP、REST、GraphQL、RPC
下图展示了 API 时间线和 API 风格比较。
随着时间的推移,不同的 API 架构风格被发布。它们每个都有自己的标准化数据交换模式。
您可以在图中查看每种样式的用例。
代码优先与 API 优先
下图显示了代码优先开发和 API 优先开发之间的区别。为什么我们要考虑API优先设计?
- 微服务增加了系统的复杂性,我们有单独的服务来服务系统的不同功能。虽然这种架构有利于解耦和职责分离,但我们需要处理服务之间的各种通信。
在编写代码并仔细定义服务的边界之前,最好先考虑一下系统的复杂性。
- 不同的职能团队需要使用相同的语言,专门的职能团队只负责自己的组件和服务。建议组织通过 API 设计使用相同的语言。
我们可以在编写代码之前模拟请求和响应来验证 API 设计。
- 提高软件质量和开发人员生产力由于我们在项目启动时已经解决了大部分不确定因素,因此整体开发过程更加顺利,软件质量得到了很大的提高。
开发人员也对这个过程感到满意,因为他们可以专注于功能开发,而不是协商突然的变化。
在项目生命周期结束时出现意外的可能性会降低。
因为我们先设计了API,所以可以在开发代码的同时设计测试。在某种程度上,我们在使用API优先开发时也有TDD(测试驱动设计)。