作者:Janet Wagner
Web API 已经存在了近 20 年,但直到最近几年,“API 优先”的概念才在软件团队中得到广泛关注。采用 API 优先方法构建产品的开发人员数量正在增加。因此,今天我们打算向您介绍 API 优先的概念,以及为什么这种方法越来越受到重视。
API 优先方法意味着什么?
API 优先方法意味着在任何给定的开发项目中,您的 API 都被视为“一等公民”。项目的一切都围绕着最终产品将被移动设备消费、API 将被客户端应用程序消费的理念展开。API 优先方法涉及开发一致且可重用的 API,这可以通过使用 API 描述语言来建立 API 行为约定来实现。建立约定需要花费更多时间思考 API 的设计。它通常还涉及在编写任何代码之前,与提供 API 设计反馈的利益相关者进行额外的规划和协作。
API 优先的日益普及
如今,人类和机器都在消费数据。人类通常通过应用程序从许多不同设备 — 智能手机、笔记本电脑、平板电脑和台式机——消费数据。不同类型的设备意味着不同的屏幕尺寸。组织必须构建在所有设备上都美观且运行良好的应用程序。
API 允许公司将功能分解为独立的、自主的服务(又称 微服务)。基于微服务构建应用程序有助于确保在所有设备上获得良好的用户体验 (UX)。API 优先策略使组织能够构建服务于所有应用程序的 API,并且应用程序可以针对所有设备、平台和操作系统进行高效开发和维护。
API 优先方法的优势
API 优先的产品构建方法提供了许多优势,包括但不限于:
开发团队可以并行工作
API 优先涉及建立契约。在服务之间创建并由组织内各团队遵循的契约,使得这些团队能够同时处理多个 API。开发人员不必等待 API 更新发布后才能进行下一个 API 的开发。团队可以根据已建立的 API 定义模拟 API 并测试 API 依赖项。
降低应用程序开发成本
API 和代码可以在许多不同的项目中重复使用。当开发团队想要构建一个新应用程序时,他们无需从头开始,这既耗时又昂贵。API 优先设计还允许在编写任何代码之前解决大部分问题,这有助于防止在将 API 与应用程序集成时出现问题。
提高上市速度
API 构建过程的很大一部分可以通过允许导入 API 定义文件的工具实现自动化。像 SwaggerHub 这样的工具允许导入 API 定义文件,通过这些文件,API 工具(如 API 文档、SDK 和模拟 API)可以自动生成。自动化显著加快了 API 和应用程序的开发。
API 优先还使得在无需重新架构整个系统的情况下,向应用程序添加新服务和技术成为可能。应用程序开发竞争激烈,因此应用程序必须快速开发。如今,应用程序不仅要设计精良,还必须在六个月内上市。
确保良好的开发者体验
API 的使用者通常是开发人员,而开发者体验 (DX) 可以决定 API 的成败。API 优先确保开发人员在使用您的 API 时拥有积极的体验。精心设计、文档完善、一致的 API 提供积极的开发者体验,因为这使得代码复用和开发者上手更容易,并降低了学习曲线。
降低失败风险
对于大多数公司而言,API 几乎应用于每个业务流程 — 从营销和销售到通信和面向消费者的应用程序,这意味着 API 可以积极或消极地影响您业务的每个部分。API 优先通过确保 API 可靠、一致且易于开发人员使用,从而降低了失败风险。
规划您的 API 优先计划
既然您了解了 API 优先产品开发方法的一些优势,那么您应该如何规划和实施 API 优先方法呢?
以下是一些应纳入您的 API 优先计划的内容。
- 头脑风暴 - 首先,有必要确定您的业务提供的关键服务以及业务能力。弄清楚应该构建哪些类型的 API 以及哪些服务应该通过 API 提供。此外,弄清楚并写下每个 API 的用例。根据这些用例写下潜在的端点。
- 确定 API 利益相关者 - 您组织内的利益相关者是谁?应尽可能多地让人员参与您的 API 计划 – 您需要全公司的支持以及组织内团队共享的愿景。此外,允许利益相关者对 API 的设计提出意见。利益相关者随后可以就整个组织的交互达成一致,从而使 API 保持一致。
- 设计 API 契约 - 契约建立了 API 设计的一套标准和最佳实践。务必描述和文档化所有 API。确保所有 API 的工作方式相同,从端点名称和 URL 到错误代码和版本控制。一致性是关键。
- 创建风格指南 - 一个全面、连贯的风格指南可确保组织内构建服务的团队之间的一致性。API 状态码、版本控制、错误处理等都将标准化,从而确保 API 以相同的方式设计。使用像 SwaggerHub 这样的工具为您的组织中的所有 API 创建风格指南。
- 实施 API 治理 - API 治理过程有助于执行既定标准并强化期望的结果。我们将在即将发布的博客文章中讨论 API 治理。进行同行代码审查也有助于确保遵循 API 设计标准,并确保开发人员生成高质量的代码。
- 自动化流程 - 使用像 SwaggerHub 这样的工具来自动化 API 文档生成、风格验证、API 模拟和版本控制等流程。此外,使 API 具备自助服务能力,以便开发人员可以立即开始使用您的 API 构建应用程序。提供交互式文档或沙盒,以便开发人员可以试用 API 端点。
- 跟踪和管理您的 API 组合 - 通过跟踪和管理您的 API 组合,避免代码重复和构建冗余 API。实施一个系统来帮助您跟踪和管理您的 API。您的组织和平台越大,跟踪 API 及其依赖项就越困难。
- 为内部开发人员创建门户 - 为内部开发人员创建一个集中式平台,一个存储所有 API 相关内容(API 规范、文档、契约等)的地方。例如,PayPal 为其开发人员构建了一个门户,据 一篇 InfoQ 文章称,它是“PayPal 内部访问量最大的应用程序之一”。PayPal 的门户包括所有 API 的清单、文档、仪表板等。
API 作为一等公民
API 优先的产品构建方法可以通过多种方式使您的组织受益。API 优先方法要求团队规划、组织并共享其 API 程序的愿景。它还需要采用支持 API 优先方法的工具。
感谢您的阅读!正在寻找更多 API 资源?订阅 Swagger 新闻简报。每月接收包含我们最佳 API 文章、培训、教程等的电子邮件。 订阅