【API 优先的设计】- 理论篇

顾名思义,API 优先的设计,指的是在进行应用的设计和开发之前,首先把应用对外开放的 API 确定下来,也就是 API 先于具体的实现。

API 优先的动机并不难理解。可以类比我们经常会听到的接口优先。接口是应用内部不同组件之间的契约、接口优先指的是在设计时,首先设计组件之间的接口。在完成接口定义之后,组件可以自由地对实现进行修改,而不用担心会对使用接口的组件产生影响。

API 优先与接口优先的理念是一样的,只不过抽象层次更高。接口一般只针对同一个应用的不同组件,与使用的编程语言紧密相关。API 则是一个应用对外提供的服务的契约。

在微服务架构中,微服务对外提供 API,并消费其他服务提供的 API。由于服务可以使用不同的语言来实现,API 通常都使用语言无关的方式来描述,方便不同服务之间的互操作。

API 优先的设计,指的是在系统的设计阶段,首先把 API 的细节确定下来,再开始相关的设计与实现。

API 优先的设计有很多优势。相信不少人都体验过修改接口时的痛苦。所有的接口使用者都需要进行修改。修改API的复杂度比修改接口要高得多。因此在项目开始的早期阶段,在充分讨论的基础上,先把 API 确定下来,可以减少后期很多不必要的 API 改动。

在 API 确定了之后,API 的提供者和消费者可以同时并行工作。API 的提供者可以完成相应的实现。API 的消费者可以使用 mock 数据来工作。这就大大提升了开发效率。

API 优先的做法已经被很多企业所使用。尤其是采用微服务架构的应用中,随着微服务的流行,API 优先的设计思想也得到了相应的流行。

版权所有 © 2024 灵动代码