标准化 API 设计的重要性

  2017 年 5 月 26 日

API 设计领域的一致性是一个被广泛讨论的话题。标准化 API 设计是组织在使其 API 易于维护、采用和使用的过程中需要考虑的下一个重要因素。也就是说,组织并没有投入足够的时间来标准化其组织内部 API 的设计方式,部分原因是他们没有意识到这样做的好处。在本文中,我想讨论在 API 设计中拥有一致的组织风格意味着什么,以及它可以带来哪些好处。

API 设计中的标准化是什么?

API 设计是创建有效的接口,使您可以更好地维护和实施 API,同时使消费者可以轻松使用此 API。

一致的 API 设计是在组织或团队内,在所有 API 及其公开的资源中标准化设计。它是开发人员、架构师和技术文档编写人员遵循的通用蓝图,以确保 API 消费中一致的“声音”、品牌和体验。组织使用旨在确保 API 设计和实施方式一致的样式指南来标准化设计。下面分享一些流行的样式指南 -

  1. Microsoft REST API 指南
  2. Google API 设计指南
  3. PayPal API 样式指南

Kin Lane (@apievangelist) 有一篇好文章列出了一些流行的样式指南。Arnaud Lauret (@apihandyman) 还维护着 API Stylebook 网站,这是一个发现公开可用的 API 样式指南的好资源。

但为什么要标准化?

以房地产开发公司为例。当建筑师设计建筑物中所有楼层的元素时,他们会确保这些楼层中的房间、门、柱子、窗户等遵循一定的模式。这不仅有助于施工团队更好地建造,而且还可以使居住和在建筑物内走动的体验愉快和享受。

您的 API 也可以这样考虑。如果您的组织是房地产公司,那么您的 API 就是楼层,其中的资源、参数和响应是楼层内的各种元素。让我们深入了解在 API 设计阶段保持一致性的必要性。

确保良好的开发者体验

如果没人使用它们,那么拥有出色的、功能正常的 API 就没有任何意义。您的 API 就像任何其他产品一样,代表着您公司的服务、价值主张和对最终消费者的价值。普通消费者和 API 消费者之间的重要区别在于他们的技术成熟度。

API 的消费者是开发人员或工程师,他们希望使用您的 API 来构建更好的应用程序。您的 API 对他们来说至关重要,他们将积极批评您的 API 的可用性和可行性。整个组织 API 的一致设计确保了开发人员使用您的平台时获得尽可能流畅的体验

设计标准化使 API 感觉熟悉。当开发人员开始在同一 API 或跨多个 API 中使用您的各种资源时,它可以最大限度地缩短学习曲线。一致、良好的设计使您 API 的使用变得简单直观,并向最终消费者表明您尊重他们的时间和需求,所有这些都对改善您与技术受众的关系大有帮助。

节省实施时间和金钱

设计标准旨在成为一套设计建议和最佳实践,以便在公司内的所有 API 中使用。这些标准不仅有助于架构师快速迭代 API 的设计,还可以加快实施速度。

设计 API 的一个重要原因是确保更快的代码。创建设计是为了移交。一致设计的 API 确保实施团队(无论是开发人员、devOps 还是测试人员)可以更好地创建功能正常的 API。

创建清晰、易于理解且相关的设计标准可确保团队中的每个利益干系人都知道如何处理 API。当设计一致时,就不会误解这些 API 应该做什么、不同的命名约定可能意味着什么以及如何解释各种协议。

提高 API 计划的可持续性

公司对 API 的投资是一项长期事业。设计标准不仅可以改进 API 的实施,还可以决定如何更新 API 或如何开发新 API。

一旦设定了设计指南,就更容易在其基础上构建,并允许团队开发 API,从而使组织能够扩展其设计和开发流程。它还有助于避免维护和使用中的任何长期问题。多个团队构建不同的服务可能会很棘手。

由于设计定义了客户端和服务如何交互,因此设计上的差异会导致服务开发阶段的混乱和开销。这些不一致只会成倍增加,并且它们的影响将在整个 API 生命周期中放大。例如,资源命名约定不一致的 API 在实施期间可能会在控制器中使用不同的命名样式,可能会在针对此资源编写测试用例时引起混淆,并最终在使用 API 的资源时导致负面体验。 

SwaggerHub 如何提供帮助

SwaggerHub 的产品团队希望确保团队在标准化设计过程时获得无忧体验。以下是一些允许组织保持一致性以更好地维护 API 并提高其采用率的功能 -

  • 样式验证器:使用样式验证器检查您的 Swagger 规范是否符合某些描述标准。例如,您公司的指南可能要求所有属性都指定示例。样式验证器可帮助您自动执行此类检查。在创建样式验证器集成时,您需要指定要执行的检查。当您运行样式验证器时,它会根据这些检查检查您的 Swagger 规范,并在出现问题时通知您。了解更多。
  • 域:域是可在多个 API 和其他域之间共享的可重用组件。域可以包含以下组件:定义、路径项、参数、响应。用户可以创建域并进行版本控制,然后定义可以存储在其中的可重用组件。用户或 API 上的协作者可以从其他 API 或域引用这些组件。了解更多。

立即免费开始使用!