8年开发经验,浅谈 API 管理

news2024/12/26 23:42:27

随着信息化飞速增长的还有各信息系统中的应用接口(API),API作为信息系统内部及不同信息系统之间进行数据传输的渠道,其数量随着软件系统的不断庞大而呈指数型增长,如何管理这些API已经在业界变得越来越重要,需要将API 开发的敏捷性、速度和效率提升到了全新的水平。

API管理

很多人认为,API的管理无非是对API信息的管理,只要将API记录在Word或Wiki文档就足够了,这其实是一种想当然的想法。根据实际经验,这些文档随着时间的推移,缺少维护,而逐渐变成了最初工作的凭证而已,已和实际运行的API大相径庭了,已失去了其作为API文档的意义了。

在目前成功的API管理实践中,API管理应该至少包括以下内容:

1)API文档信息管理

2)API测试质量管理

3)API研发流程管理

4)API自动测试管理

只有至少实现了以上四点,才能称之为有效的API管理,API才能更有效地服务于企业,把 API 的开发提高到新的水平。

API管理现状

现有应用系统大多采用前后分离端架构或微服务架构,一般规模的系统至少有上百个API,对于庞大的系统,包含数千个API是很正常的,并且系统内的API不仅数量众多,并且种类各异,分布在不同的地方。目前API管理主要存在以下难点:

1)API信息管理困难

由于系统中拥有纷繁复杂的API,在研发过程中因疏漏无法及时更新API信息的情况时有发生,最后会导致API信息出现缺漏。对于API的开发者和使用者来说,API文档信息逐渐失去参考价值;对于项目管理者来说,API信息无法与测试、项目迭代进度等内容关联起来,无法了解项目的实际研发、测试和运行情况。

2)API研发协作困难

在API管理平台不统一的情况下,每个项目团队都有自己的使用习惯或历史遗留问题,平台不统一导致无法维护和协作。并且由于API变更时没有及时更新文档和通知到相关人员,导致项目检查、后期测试、前后端对接过程中高昂的沟通成本,拖后项目的进展。

3)API测试困难

测试人员需要看着接口文档再另外使用工具进行测试,另外接口发生了变化,需要重新再写测试用例,增加了工作量降低了效率。测试总是排在最后进行,无法参与项目讨论,无法快速大范围回归测试,甚至无法按时完成测试任务,导致项目延期或者忐忑上线。

4)API自动化测试困难

测试人员需要学习编程语言去编写测试脚本,但是测试脚本因更新不及时、编码风格不完善、不方便协作等原因导致使用成本较高,测试报告也不够清晰。

5)API测试管理困难

测试团队以及项目管理人员无法准确了解测试效果,无法通过数据来量化当前项目质量。项目管理人员缺乏一个平台来展示团队开发进度,如完成需求量情况,是否通过测试、对接和发布等信息。

Eolink Apikit 的解决之道

Eolink Apikit 提出针对API开发协作的创新理念——文档与测试驱动开发(DTDD),何为文档与测试驱动开发呢?简而言之:

1)用标准文档代替口头约定和笔记文档,让开发、测试、运维、协作有迹可循;

2)快速用测试结果推动开发进度,让团队沟通更充分、管理有事实依据,实现敏捷开发。

依据这个理念,Eolink提供一套先进的解决方案,目标是降低研发过程中因为API管理导致的效率低下、测试不清、管理困难等问题,通过敏捷的API研发管理方案和理念来推动企业业务的快速发展。

下图所示为  ApiKit 解决方案示意图:

Eolink Apikit 的实战

1.API信息管理

全面的API信息管理模块,通过手动 或自动方式生成API信息,全面记录和展示API信息。 1)设计API:能够详细、规范地记录API的所有信息,可以通过它来设计、统一API的开发规范(如下图所示)。除了手动创建API外,还可以从其他工具或系统导入已经设计好的接口,如Postman、Swagger、Jmeter、Apifox、YApi等。

2)管理API:API信息里面会记录创建人、负责人、最后修改时间等信息,并且可以为API定义Tags,对API进行分类,可以更好地对API进行管理,如下图所示:

除此之外,还可以绑定Github、Gitlab、码云等代码仓库,可以一键自动生成API文档,也兼容Swagger代码注解生成API文档。

2.API测试管理

一键发起测试,拥有专门的测试编辑器可以直接编写JSON、XML数据,还可以支持自动生成测试数据,能够通过Javascript代码对请求参数、放回结果进行二次加工,实现复杂场景的测试。

系统会记录每一次请求的历史,可以看到详细的测试时间、请求及返回信息等,这样保证了测试结果可查并且可追溯。

3.API自动化测试

Eolink实现了零代码实现API自动化测试,能够让测试人员通过界面就可以完成自动化测试,并且提供了Javascript脚本模式,可以通过非常简单的脚本来编写复杂的API测试用例,实现自动化测试中复杂的流程跳转、数据加解密、验签等目的。

4.API研发管理

通过把产品系统的各个研发周期串联起来,可实现产品、开发、测试、运维等各个环节和人员的综合协作。通过Mock API可以实现前后端同时开发,通过API状态统计,可以快速了解到当前项目内所以API的状态分布;除此之外,还可以制定迭代计划并跟踪开发进度,将API绑定到迭代计划上,可以帮助团队将开发进度精确到以API为单位,实现更精确的进度跟踪。

除此之外,还可将API设置为已发布、设计中、待确定、开发、对接、测试、完成、异常、维护发、废弃等状态,可根据每种状态设置状态变更操作,如当API变为测试状态时测试人员,当然,状态发生改变或改变接口本身时,也可以手工选择需要通知的人员。如下图所示,当更新接口状态时,不仅需要更新相关变更信息,而且还可以选择是否触发变更通知。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络管理 - OSPF 动态路由协议

文章目录 1 概述1.1 五种报文1.2 运行原理1.3 区域概念1.4 状态1.5 身份 2 实验配置2.1 网络拓扑图2.2 配置命令 3 扩展3.1 网工软考真题 1 概述 #mermaid-svg-EOOBZo0uztmJLHOT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#m…

强化学习:贝尔曼最优公式

策略改进案例 强化学习的目的是寻找最优策略。其中涉及两个核心概念最优状态值和最优策略,和一个工具:贝尔曼最优公式。   首先,我们给出一个熟悉的例子,了解贝尔曼方程是如何改进策略的。 根据给出的策略,我们很容…

jsonpath 语法介绍

文章目录 前言 一、对jsonpath的理解 二、补充 三、哪里可以用的到呢? 总结 前言 在使用Python做接口测试中需要获取json中的字段值,因此需要使用jsonpath里面的提取规则,所以特意学习了jsonpath中的语法。 一、对jsonpath的理解 在线运…

ZigBee案例笔记 - 定时器

文章目录 1.片内外设I/O2.定时器简介3.定时器1寄存器4.定时器1操作自由运行模式模模式正计数/倒计数模式 5.16位计数器定时器1控制LED 示例 6.定时器3概述自由运行模式倒计数模式模模式正/倒计数模式 7.定时器3寄存器定时器3控制LED闪烁 1.片内外设I/O 定时器这样的片内外设也…

微信小程序原生开发功能合集十五:个人主页功能实现

本章个人主页功能实现,展示当前登录用户信息、个人主页、修改密码、浏览记录、我的收藏、常见问题、意见反馈、关于我们等界面及对应功能实现。   另外还提供小程序开发基础知识讲解课程,包括小程序开发基础知识、组件封装、常用接口组件使用及常用功能实现等内容,具体如…

django ORM框架 第四章 聚合函数

上一章:django ORM框架 第三章 关联表的数据创建与查询_做测试的喵酱的博客-CSDN博客 一、聚合函数类型: from django.db.models import Q, Count, Avg, Max, Min 班级表: 学生信息表: 1.1 Count 模版: QuerySet.…

如何将m4a音频转换mp3格式,5种简单方法帮你处理

如何将m4a音频转换mp3格式?这个问题想必在工作生活中经常遇到吧。为什么要将m4a音频转换mp3格式呢?首先,M4A是一种较新的高质量音频文件格式,通常用于存储高保真度的音频文件,例如音乐录音室的原始录制。但是&#xff…

基于C#制作一个ChatGPT桌面助手

基于C#制作一个ChatGPT桌面助手,在工作或者学习时提升自己的效率,工欲善其事,必先利其器。 一、前言1.1、什么是ChatGPT1.2、ChatGPT官网及key申请 二、后台项目2.1、项目创建2.2、界面设置2.3、获取版本2.4、发送信息 一、前言 1.1、什么是…

深度学习实战31-开发基于机器学习的在线图像识别工具

大家好,我是微学AI,今天给大家讲一下深度学习实战31-开发基于机器学习的在线图像识别工具,本文开发一个基于机器学习的在线图像识别工具,用户可以上传一张图片,并得到对应的标签或分类信息。该工具应该支持多种图像类型,例如自然风景、动物、物品等,并且在处理复杂图像时…

面向移动机器人的道路环境感知

分享嘉宾 | 范睿 文稿整理 | William 自动驾驶感知 首先,三维几何模型背后的机理是多视图几何学,多视图几何学是指想要得到对应模型的三维几何架构,则必须要用相机在两个不同的位置进行拍照。如图1,可以通过利用两个相机在不同位…

【HarmonyOS】【JS】小白的鸿蒙学习之路2--小小的图片啊,动呀动起来

【关键字】 image组件、动画 【介绍】 今天和大家分享下,我在官网上学习的一篇Codelab。这篇帖子通过一个代码示例,实现image组件的平移、缩放、旋转和透明度变化效果。话不多说,我们一起学起来吧! 【成果展示】 【开发步骤】 …

FE_VUE路由 细致解读router/index.js的配置

1 安装vue-router插件 安装vue-router,命令:npm i vue-router 【npm i vue-router3】,在main.js 中引入路由文件: import router from ./router, 注意router 不要变且为小写;注册路由(因为main…

商场室内地图导航如何实现?商场室内导航地图怎么做?

商场室内地图导航如何实现?现在,消费者的消费观念和消费心理日趋成熟,对于购物商场的要求也愈加挑剔。电子地图作为大家最喜闻乐见的高效应用形式,能够在顾客购物的过程中带来非常大的帮助和体验,对于在大型的综合商场…

抖音电商的新增量在哪里?

“抖音电商涨不动了,才提出做货架”,“抖音做不好货架”……去年,抖音电商提出做“全域兴趣电商”,当时业内外有鼓励,也有不看好的声音。一年过去,5月16日,抖音电商总裁魏雯雯回应了质疑&#x…

Python可视化工具分享

今天和大家分享几个实用的纯python构建可视化界面服务,比如日常写了脚本但是不希望给别人代码,可以利用这些包快速构建好看的界面作为服务提供他人使用。有关于库的最新更新时间和当前star数量。 1、 streamlit (23.3k Updated 2 hours ago) Streamlit…

看完这篇文章你就彻底懂啦{保姆级讲解}-----(I.MX6U驱动GPT定时器中断实现高精度延时) 2023.5.19

目录 前言整体文件结构源码分析(保姆级讲解)初始化延时函数部分:微秒(us)级延时部分毫秒(ms)级延时部分主函数main部分 编译下载结束语 前言 在上一讲过程中我们使用了EPIT定时器来实现了定时器中断,从而解决了按键消抖的问题。但…

ChatGPT与深度学习的完美融合:打造智能化推荐系统新时代

PNN | AutoRec | 推荐算法 NFM | ChatGPT | 深度学习 新技术如ChatGPT、LLM、AIGC等的兴起,使推荐系统拥有更强的学习和预测能力。然而,推荐算法仍然是深度学习推荐系统中不可或缺的关键技术。推荐算法和这些技术应相辅相成,相互补充。推荐…

五大向量数据库入门横评

本文内容节选自 Paxi.ai 文章分享,Paxi.ai是一个基于GPT-4打造的帮助用户快速使用AI的AI工具,对内容感兴趣的朋友可以上他们官网查看。 从OpenAI发布GPT以来,AI尤其以LLM为代表的项目发展迅速,相信大家已经了解到大语言模型的魅力…

apk 作为资源提供 aar 的过程

1:参考:Android将APK项目封装为SDK(AAR) https://blog.csdn.net/weixin_51522235/article/details/128216091 四大点:1: apply plugin:com.android.library 2:去掉:applicationId 3:去掉:applicationVariants.all…

MySQL:触发器、权限管理

一、学习目标 了解什么是触发器掌握创建触发器的方法掌握查看触发器的方法掌握触发器的使用技巧掌握删除触发器的方法熟练掌握使用触发器的方法和技巧了解什么是权限表掌握权限表的用法掌握账户管理的方法掌握权限管理的方法掌握访问控制的方法熟练掌握新建用户的方法和技巧了…