为什么 API 优先工程是软件开发的前进方向
快速阅读: 据《Beta新闻》最新报道,以API为中心的开发方法强调将API视作独立产品,注重其设计、文档和用户体验。这种方法要求团队转变思维模式,将API作为一流产品来创建,确保其可维护性、一致性和易用性,从而提升开发效率和数字体验。简而言之,以API为中心的开发旨在通过改进API市场的可发现性、一致性和安全性,提高开发者的生产力和体验。
英国的软件开发者和国际软件开发公共演讲人马丁·福勒曾有名言:“任何一个傻瓜都能写出计算机能够理解的代码。优秀的程序员编写出人类能够理解的代码。”他的《重构》一书数十年来一直是畅销书,是指导如何安全且快速地转换代码的指南,帮助开发者构建更好的代码。在开发以API为中心的方法时,这些原则同样适用。但首先,我们所说的以API为中心的方法是什么意思?这是一种优先考虑API设计而非先编写其他代码的软件开发方法,而不是将其当作事后考虑。这与传统方法不同,在传统方法中,首先编写应用程序代码,然后添加API。这种方法让团队可以构建通过API交付的内部和外部服务的应用程序。这是一种以API为中心的战略方法,将它们视为一流的产品,由开发者为开发者社区设计、实现、分发和维护,从而使API用户(开发者)只需简单轻松地“调用”这些API就能构建更好的软件应用、服务或更广泛的IT系统。
思维模式的转变
如前所述,要实现这一点,API必须作为一个一流产品创建。换句话说,它不是一个应用程序的后端,而是一个独立的产品。更重要的是,它是一个供开发者与其他开发者共享的产品。然而,以这种方式处理API需要思维模式的转变。为了理解这种思维模式的转变,让我们看看不应如何进行以API为中心的工程方法。当我们开始一个API项目时,通常会设计我们的API规范并围绕其构建代码,然后将API定义上传到存储库或内部文档中以托管API定义。同时,为了开始提供流量,相同的API定义会被复制到API管理运行时。我们常常认为这就是以API为中心的工程方法。我并不是说这样做不好,但当你有一个内部API定义(今天70%到80%的API是内部API)存储在运行时之外时,随着时间的推移,你的API定义会变得过时。例如,你可能会引入一个在API定义中没有的核心参数,这意味着任何使用该API的人都会突然发现它难以使用。在一个开发人员紧密合作的小组织中,这可能只是一个简单的问题,通过交流就能解决。然而,在拥有多个办公室和地点的大组织中,这会变得更加困难。简单来说,如果你将API视为产品,就不应该需要提出澄清问题。用户手册将提供你所需的所有信息。
将API视为产品
将API设计成像产品一样意味着以同样的方式思考它。那么,如何提高产品的市场契合度?它是否提供了足够的功能给用户?未来的用户呢?它是否提供了足够的消息传递等?将API视为产品你也需要将其视为主要的用户界面。你的API是底层数据或功能系统的接口;因此,你也必须将其作为一流的用户界面创建。从提供者的角度看,可维护性也很重要。你如何更新API而不影响使用者?API的调试性如何?你能实际找出错误并处理需要调试的部分吗?你能否发送载荷,明确告知用户他们应该期待什么或发生了什么,以便用户能自行轻松修复问题并节省时间?
保持API一致性
接下来,你需要考虑如何实施和坚持基础设计并保持API一致性。你的API应该独立实现,底层技术不应驱动你的API。但你需要构建一个整体的API架构和设计。提供基本功能的API、领域API以及提供数字体验的经验API。这意味着你需要实现一个独立的整体API架构,设计上以领域驱动,具有基于单元的架构以实现可重用性。你的API设计应重用组织的领域模型,并能适应组织的API架构。换句话说,当你设计API时,需要使其足够通用,考虑到所有可能的消费方式,并遵循现有的领域模型。
描述性文档
编写解释性和可靠的文档,采用描述性的API规范标准和模式非常重要。你会有不同的文档用于不同的目的,需要确保文档简洁明了,有可靠的目的驱动文档、指南和解决方案。精心规划和编写的文档将帮助消费者轻松适应你的产品——API。提高API的可发现性意义重大,不容忽视。你的消费者必须找到你的产品——无论你使用的是哪个平台或市场——你应该能够轻松找到你的API,因此,使用元数据和标签使其易于搜索。我们往往忽视添加API元数据的重要性,但实际上,API元数据极大地提高了API的可发现性。
最后,一旦消费者找到API,它们使用起来有多容易?易用性应该是无缝的,没有任何摩擦。设计它就像设计产品的快速入门指南一样。以API为中心的工程策略旨在通过提供具有改进可发现性的API市场来增强开发者的体验和生产力,使开发者能够快速找到所需的资源。一旦被发现,借助改进的一致性、文档和易用性,开发者将在他们的新应用和系统中使用API。它还应增强API安全性,提供更好的合规性和治理。最终,使开发者能够编写出人类可以理解的代码!
简而言之,使用API应该更加高效、成本更低,并提供更好的数字体验。
(以上内容均由Ai生成)