为什么要 API 优先?

简介: 最近关于 API-First (API 优先)作为设计和开发方法的讨论很多,虽然通向 API-First 的途径有很多,但通常推动 API-First 的一般都是 API 架构师、API 设计师和 API 平台负责人等,很好理解,因为他们对组织中 API 的效率、互操作性和质量最感兴趣。因此,这些支持者制定了与团队其他成员共享的 API 指南和标准。对于开发人员来说,API 优先似乎是一个崇高目标,但实施该方法时动力和紧迫性经常会减弱。结果导致开发者可能难以遵守这些政策。管理层关心 API 管理,那其他人为什么也应该关心呢?

最近关于 API-First (API 优先)作为设计和开发方法的讨论很多,虽然通向 API-First 的途径有很多,但通常推动 API-First 的一般都是 API 架构师、API 设计师和 API 平台负责人等,很好理解,因为他们对组织中 API 的效率、互操作性和质量最感兴趣。

因此,这些支持者制定了与团队其他成员共享的 API 指南和标准。对于开发人员来说,API 优先似乎是一个崇高目标,但实施该方法时动力和紧迫性经常会减弱。结果导致开发者可能难以遵守这些政策。

管理层关心 API 管理,那其他人为什么也应该关心呢?


1. 开发者喜欢 API-First 的原因

理论上讲,开发者知道 API-First 可以提高他们的生产力,提高代码质量,并改善他们构建的整体用户体验。深入了解后发现开发者喜欢 API-First 的原因:

  • 构建人们想要的东西: 通过合同或模拟与利益相关者进行早期社交化,使他们对所构建的内容充满信心,无需在开发过程后期重新搭建和重组。

  • 节省时间: 一旦初始设计达成共识,API 合同就可以用于自动生成代码、文档、合同测试和模拟服务器。

了解 API-First 方法所能实现的结果是迈向 API-First 之旅的第一步,我们看到很多团队都是因为开发者希望能自动生成代码、文档、测试和模拟才回归到实践中去支持 API-First 的。


2. 开发者不喜欢 API-First 的原因

那些使用 OpenAPI 等工具设计 API 的团队不喜欢 API-First ,原因是:

  • 耗费更多时间: 在设计过程需要进行前期铺垫工作,并且 API 合同需达成利益一致。

  • 认知负担: 如果团队没有完善的定义和指南可供参考,从零开始规划用户场景可能会令人不知所措。

  • 足够好: 目前的流程运行良好,尽管有更好的方法可以采用,但没有一定要改变的紧迫性。

一起看看各个团队是如何解决这些疑虑并赢得开发人员支持的。


3. 推动组织内 API-First 的方法

对于开发者来说,采用新流程是很自然的,但要充分发挥 API-First 的作用,最终目标和实现方法能得到领导层和实践者的支持十分重要。根据团队的 API 阶段,有不同方法可以优化 API 优先设计和开发过程。

  • 提升对 API-First 方法的认知

  • 建立治理机构,或负责人制定实践流程,为开发者提供支持

  • 提供最佳实践和指南以简化决策过程

  • 创建一个可供参考的内部定义目录

  • 提供可重复使用的组件以加快开发速度,并保证一致性

  • 增加自动化反馈环节,如: API 检查及其他基于政策编码规则

  • 通过 API 指标(如开发时间、错误、使用情况和采纳率)衡量进展情况

  • 将激励措施与关键目标相结合,引导开发者积极性


4. API-First 是一个旅程

采用 API-First 设计在前期规划,以及 API 合同达成利益一致方面,都需要时间。一旦设计得到认可,它可以在整个 API 全生命周期中自动生成交付物,从而节省时间。由于减少了返工,在后续开发周期中也节省了很多时间。

同样,在 API-First 之旅的最开始阶段,需要花费时间和资源来制定指南,并创建可复用的组件。一旦流程确定下来,团队将看到开发者生产力、代码质量以及用户体验等方面的提升,从而开发人员的满意度也会提高。


Eolink 就是 API-first 的优秀案例,通过 DTDD(文档与测试驱动开发)和 API First 理论,致力于让 API 管理更简单。

DTDD(文档与测试驱动开发)

文档驱动开发:项目开发前,先把文档写好,明确功能需求、入参出参定义、异常情况处理等,再进行开发。

测试驱动开发:项目开发前,先写好测试方案/用例,要求代码顺利通过测试,如不通过则持续进行改进。

DTDD.png

相关文章
|
NoSQL Redis 数据安全/隐私保护
|
机器学习/深度学习 监控 Web App开发
SLS机器学习最佳实战:根因分析(一)
通过算法,快速定位到某个宏观异常在微观粒度的具体表现形式,能够更好的帮助运营同学和运维同学分析大量异常,降低问题定位的时间。
12733 0
|
6月前
|
API 开发工具 开发者
全面的开发者文档和用户目标解析:API 文档指南和开发者旅程
开发者文档,也称为 API 文档,是一种专门针对软件开发人员的技术写作形式。这种类型的文档通常包括 API 的技术规范、代码注释、软件设计和架构以及软件开发中涉及的其他详细技术描述。开发者文档是开发人员的重要工具,因为它提供了使用和集成特定软件、库或 API 的必要指南、标准和示例。开发者文档的结构和内容的全面性会根据它所描述的软件的复杂性而大不相同,但主要目的是帮助开发人员理解、使用和高效地为软件做出贡献。
452 2
|
6月前
|
监控 安全 测试技术
🆚内部 API vs 公共 API:全面比较及管理策略
内部和外部API在用途和受众上存在差异。内部API专注于提升公司内部效率,不对外公开,常用于集成内部系统和数据。公共API则面向公众,用于创建应用、增加收入和品牌知名度,它们需要安全管理,支持多种用例,并遵守法规。公共API带来收入、社区建设和创新机会,但涉及安全风险和依赖第三方。内部API安全性强,控制力高,但曝光度有限,维护资源受限。有效的API管理对于两者都至关重要,涉及设计、记录、测试、发布和保护。内部API和公共API在身份验证、文档、货币化和监控方面有不同管理策略。
|
JSON API 开发工具
API参考—实例管理—CreateDBInstance
API参考—实例管理—CreateDBInstance
153 0
|
XML JSON API
API参考—实例管理—DescribeDBInstances
调用DescribeDBInstances接口查看实例列表详情。
179 0
|
XML JSON API
API参考—实例管理—ModifyDBInstanceDescription
调用ModifyDBInstanceDescription接口修改实例描述。
|
XML JSON API
API参考—实例管理—RestartDBInstance
调用RestartDBInstance接口重启实例。
|
XML JSON API
API参考—实例管理—DeleteDBInstance
调用DeleteDBInstance接口释放实例。
|
6月前
|
存储 JSON 前端开发
【工作中问题解决实践 十二】使用@JsonTypeInfo实现请求数据对象多态
【工作中问题解决实践 十二】使用@JsonTypeInfo实现请求数据对象多态
265 0