首页 > 其他分享 >为什么要 API 优先?

为什么要 API 优先?

时间:2023-08-03 17:24:26浏览次数:57  
标签:为什么 优先 测试 API 文档 开发者 开发 First

最近关于 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 管理更简单,为企业用户提供一站式、智能化的 API 全生命周期解决方案,产品能力覆盖 API 规范化治理、API 研发流程优化、API 性能和安全保障、API 数据服务开放及交易等创新服务。

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

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

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

image

标签:为什么,优先,测试,API,文档,开发者,开发,First
From: https://www.cnblogs.com/apibest/p/17603885.html

相关文章

  • 个人微信开发API接口开发
    个人微信开发API接口可拓展功能说明1、个人微信多账号管理、聚合聊天、多个微信号同时登陆、多个微信号集中在一个窗口进行聊天,实现一人多号同时沟通快速提升沟通效率,提升微信营销效率。2、客服灵活分配:客服主管可自由分配微信号给指定客服,方便及时处理问题,也可随时转接给公司商务......
  • Django Rest Framework 教程及API向导
    DjangoRestFramework教程及API向导。一、请求(Request)REST_FRAMEWORK中的Request扩展了标准的HttpRequest,为REST_FRAMEWORK增加了灵活的request解析和request认证。1、请求.data:获取请求的主体,相当于request.POST和request.FILES.query_params:  request.GET的重命名.p......
  • abp使用动态api客户端注意事项
    步骤按照官方的来就行API/DynamicCSharpAPIClients|DocumentationCenter|ABP.IO但有一点要注意,这也是官方文档没提及的,比如你在application这一层调用另一个项目的api客户端则要在application层的module里加上依赖,这个容易忘记。[DependsOn(typeof(Bank......
  • CS客户端内嵌WebApi
    突然一天WPF客户端紧急需要一个功能被远程控制,于是第一想法便就是客户端充当服务身份。于是便客户的后台控制想法需求便出来了。记录一下工作上简单实现。publicclassWebApiHost{staticWebApplicationwebApp=null;publicstaticvoidStartWebA......
  • 多语言API接口接入电商平台获得商品快递费用源代码演示示例
     商品快递费用API接口的作用是通过调用接口获取特定商品的快递费用信息。具体而言,该接口可以提供以下功能和作用:实时获取快递费用:通过API接口可以实时查询不同快递公司对于指定商品的运费费用。用户可以根据商品的重量、尺寸、寄送地址等信息,调用接口获取最准确的快递费用。便于物......
  • Vuejs+WebApi导出Excel
    前后端分离,前端Vuejs,后端.Net6WebApi后端代码1publicclassSalesReportController:BaseController2{3privateSerilog.ILogger_log=GetLogger<SalesReportController>();4privatereadonlyISqlSugarClient_db;5privateIHostEnvironme......
  • Node中fs模块的一些操作API
    ❝这里主要讲一讲node里面fs模块的一些基操!本篇只讲几个API,后续的可能会在其他文章补充!声明:本文的代码是koa2环境中的,是CommonJS的规范,需要使用require引入!❞什么是fsfs全称为filesystem,称之为文件系统,是Node.js中的内置模块,直接导入使用即可!模块中的API,分异步和同步操作......
  • 为什么倒排索引不采用zlib这样的字典压缩算法——因为没法直接使用啊
    看了下压缩算法的发展历史,根据倒排索引的数据结构特点,个人认为zstd不适合做倒排索引压缩,举例说明下:假设有一份文档倒排列表为:[300,302,303,332],对于这组倒排数据,是没法***直接***采用zstd这类字典压缩算法的,因为里面没有重复数据(字典压缩通常重复数据较多,例如一个重复单词较多的......
  • 网工内推 | 云计算工程师专场,CCNP/HCIP认证优先
    01弧聚科技招聘岗位:网络工程师(云计算方向)职责描述:1、作为H3C初级云计算交付工程资源培养对象,需配合完成相关华三产品及服务规范培训。2、培训赋能后,安排到H3C云项目交付中进行项目交付及驻场支撑。3、按照公司项目需求,需动态进行出差支撑任职要求:1、大专学历及以上学历,IT相关专业......
  • RPA开发复杂流程-为什么使用编码自动化而不是低代码?
    答:编码自动化可以让任何熟悉编码或脚本的人都能体验到更高的生产力、更好的复杂性管理、更高的协作和可审查性、改进的可读性和更高的性能。 ......