API 设计决定了不同组件之间的通信方式,使其成为许多软件应用程序的基石。通常,开发人员在实现 API 时可以在两种方法之间进行选择:代码优先或设计优先。虽然这两种方法各有优缺点,但选择正确的方法可以显著影响您的开发工作流程。
本文将探讨代码优先和设计优先方法之间的差异,API 探索如何融入每种方法,以及如何为您的项目选择最佳选项。
传统的 API 开发代码优先方法速度更快,但借助新工具,设计优先方法可以帮助提高短期速度和长期一致性。
代码优先 vs. 设计优先
顾名思义,代码优先方法涉及先编写代码,然后在事后记录代码。开发人员通常使用这种方法来构建 API 的模型、方法和数据访问层。然后,他们使用工具在事后从代码生成 API 文档。
代码优先方法可能适合对 API 设计要求有清晰了解的开发人员。通过在文档之前编写代码,他们可以缩短上市时间并更快地启动。特别是,它可能是一种适合快速原型制作、小型团队或具有高度迭代开发的项目的方法。
但是,这种方法使其他利益相关者(如测试人员和技术撰稿人)更难以理解 API。他们可能必须深入研究 API 代码库并使用 API 探索工具来了解其工作原理,而不是参考精确的 API 定义来编写自动化测试或编写文档。
设计优先方法涉及在编写任何代码之前创建详细的 API 定义。虽然听起来更耗时,但开发人员可以使用这些定义(例如 OpenAPI 规范)以多种编程语言生成代码,并在短时间内提高实现的一致性。
更重要的是,设计优先方法可以让每个人保持一致。在就 API 定义达成一致后,测试人员和技术撰稿人可以与开发人员并行工作。在许多情况下,结果是多个实现的上市时间更快、文档更一致、测试更可靠。
API 探索如何融入
API 探索是测试和与 API 交互以了解其行为和功能的过程。例如,测试人员可能会使用 cURL 或 SwaggerHub Explore 等工具向 API 发送请求并检查响应。前端开发人员可能会尝试使用 API 向其组件提供数据并交付用户故事。
SwaggerHub Explore 是一款易于使用的工具,可帮助开发人员与多协议 API 交互并探索它们。发出请求后,您可以轻松评估响应,并存储请求和参数以供将来使用。在更高的层面上,它使您能够立即可视化 API 数据,以便在投资 API 集成之前评估其功能和限制。
SwaggerHub Explore 的空间使存储 API 和搜索历史变得容易。来源:SwaggerHub
API 探索在与设计优先方法结合使用时最有用,因为开发人员可以使用 OpenAPI 规范在探索过程中创建用于测试的示例请求和响应。使用预先存在的 API 定义开发自动化测试也容易得多,同时确保 API 满足治理约束。
但是,代码优先方法可能更适合探索性测试,因为它允许开发人员快速原型化 API 并测试其功能。当做出 API 设计决策不切实际时(例如,项目处于非常早期的阶段,设计很可能会发生很大变化),它也很有帮助。
SwaggerHub 如何提供帮助
SwaggerHub 通过实施基于 OpenAPI 的设计标准来加速 API 开发。此外,该平台还支持与强制执行样式标准的编辑器进行更紧密的协作,并提供最新的交互式文档。
SwaggerHub 可在强制执行质量和样式一致性的同时加快您团队的设计流程。来源:SwaggerHub
例如,SwaggerHub 的 API 自动模拟集成会根据您的定义创建并维护 API 的半静态模拟。每次保存 API 时,它都会更新。这样,开发人员就可以在实施之前在设计时测试 API。您甚至可以在后端准备好之前开始构建客户端应用程序。
当您构建 API 时,SwaggerHub 的强大编辑器会根据您的 OpenAPI 规范提供智能错误反馈和语法自动完成功能,以加速开发。样式验证器可确保多个 API 的一致性,从而改善开发人员体验。最后,域使您可以轻松存储、重用和引用多个 API 中的常见语法,以节省时间并提高一致性。
当您准备好启动 API 时,SwaggerHub Codegen 可以自动生成客户端 SDK,使所有客户端都可以轻松使用 API。您还可以生成服务器存根以启动开发过程并缩短上市时间。这些功能有助于弥合代码优先和设计优先方法之间的差距。
最后,如果您已经启动了 API,新推出的 SwaggerHub Explore 使 API 探索变得轻而易举,并支持 REST 和事件驱动的 API 定义。例如,开发人员可以发送请求并收到即时响应,从而了解有关 API 行为的更多信息,并在集成过程中节省时间和精力。
底线
API 设计对于许多软件项目的成功至关重要。虽然一些团队更喜欢代码优先方法,但新工具使设计优先方法变得快速高效。例如,SwaggerHub 允许您自动模拟 OpenAPI 规范、生成 SDK 并进行探索性测试。
通过采用设计优先方法,您可以利用 SwaggerHub Explore 等工具来导入和了解 API 定义并启动其他活动。这些努力可以帮助加速软件开发过程并避免代价高昂的瓶颈。
立即免费试用 SwaggerHub Explore.