一、API管理的痛点
- API接口在设计时往往需要编写大量的文档,而且编写完成之后还会经常改动,文档编写维护工作量大。
- 接口文档编写好后,实际的代码可能会与文档有出入,这个时候文档是不准确的,文档与代码保持修改同步也是一个很大的工作量。
- 随着接口版本的迭代,接口文档需要同步更新。
- 有些时候接口会成为对接双方的开发进度瓶颈,因为接口调用会有依赖,类似app的项目,前端会需要调用后端接口,接口功能不实现会影响前端开发进度。
- 接口开发完以后,做接口测试不方便,特别是接口数量多,参数复杂的情况,测试工作量大。
- 接口在版本迭代后,旧的接口常常需要做回归测试,这个工作量也是非常大的。
二、解决思路
- API接口管理系统化或平台化,可以直接在可视化API管理界面上方便的维护接口。而且最好有版本管理和权限管理。
- 可视化维护好的接口可以直接生成对应语言的代码,节省代码开发量。代码有变更时,最好还可以与界面上的接口进行同步。
- API界面能够提供模拟接口实现方的调用功能,这样就能解耦接口调用方与服务方的强进度依赖,可以先按API接口的消费方基于接口管理系统或平台模拟调用,待服务方准备好后再真实调用。而且这里的模拟最好能做到自定义规则的模拟返回。
- 接口实际开发完成后,可以根据接口管理系统或平台的可视化测试界面,直接进行接口的实际调用测试。
- 接口平台能够支持自动化测试,可以自定义测试案例,然后自动化测试并生成可视化报告。这个功能在旧版本接口复测时非常有用。
当然实际落到系统的话,除了上述的核心功能,还有些关联功能。大致需要的全部功能如下图:
三、解决方案
API接口管理应该是大部分公司都会面临的一个管理问题,因此也有很多现成的轮子可以直接拿来用。
这里结合我使用的经验与找到的案例简单介绍下:
3.1 国内解决方案
-
eoLinker
官网地址:https://www.eolinker.com
这是一家国内的在线API管理平台,同时也提供开源精简版本。该平台提供的功能非常全面,除了代码生成与同步这个功能外,基本涵盖了前面提到的解决思路中的所有功能。 -
RAP
官网地址:http://rapapi.org/org/index.do
这是阿里巴巴公司的团队做的一个开源的API管理系统,功能也还比较全面。除了没有代码生成与同步、自动化测试、状态码管理功能,解决思路中提到的功能基本都有。 -
CrapApi
官网地址:http://api.crap.cn/
这是国内的一个开源的API管理系统,提供了文档管理、项目/组织管理相关的功能,在测试管理与代码管理这块是缺失的。
3.2 国外解决方案
-
SwaggerHub
官网地址:https://swaggerhub.com/
这是国外的一个非常有名的基于Swagger的一个在线平台,提供了API全生命周期管理的工具集,基本涵盖了解决思路中提到的全部功能。Swagger是一个开源的设计与描述Rest API的框架,它有自定义的接口规范和很多非常实用的工具集,比如Swagger Editor可以用来设计接口,Swagger Codegen可以用来生成代码和测试桩,Swagger UI可以用来生成可视化接口文档等。 -
apiary
官网地址:https://apiary.io/
这是Oracle公司收购的一家API管理的公司,也是一个在线的API管理平台,除了代码生成功能,基本提供了解决思路中提到的所有功能。它有自己定义的接口描述语言API Blueprint。 -
apigee
官网地址:http://apistudio.io/
这个也是一个基于Swagger的在线API管理平台,可以做接口管理、接口模拟测试。整体的功能相对比较简单。
3.3. 综合比较
由于上述的平台我没有全部深度使用过,所以就功能易用度不作评价,基于各平台的介绍与简单使用做下分析比较。
从设计上来说,国外的Swagger和apiary都有统一的开源接口规范,这样就有了搭建生态的前提,然后创建对应的工具集就会非常实用有效。这里相比而言Swagger的生态又更加成熟些。
从功能完备度或商业化程度上来说,国内的eoLinker、RAP,国外的Swagger、apiary都还不错;其中以eoLinker、Swagger最为突出。
综合比较下来,个人觉得Swagger是在API管理这方面做得最好的,商用的话eoLinker可以考虑,如果考虑到成本或者需要开源的系统,那RAP系统不错。当然实际需求不同公司是千差万别的,最适合的才是最好的,至于哪个更适合就需要自己根据实际情况去比较了。
四、思路扩展
API接口管理还是很大的应用场景的,特别是移动端开发、前后端分离、微服务化的情况下。这方面不管是做开源、还是做商用版本,还是大有可为的。
而对于开源版本,想做成生态定义个统一规范,再基于规范做工具集、集成平台就会非常利于发展,就像Swagger一样。另外还可以支持与其它接口关联的功能动态集成,这样功能就会越来越强大。
而对于商用版本,功能就需要非常完备,数据安全性和权限管理这些非核心功能也需要做得很好才行,另外最好半开源或阶梯性收费,就像eoLinker一样。不过eoLinker目前还没做到代码生成与同步,这块也是接口管理很大的一个痛点与难点。
当然很多大公司资源比较足,而且需求也有更多的定制要求,这样自开发肯定是更加好的;而小公司选用开源的版本或基于开源版本做定制修改,就会更加划算。
五、扩展介绍
API测试的工具
- postman
官网地址:https://www.getpostman.com
有 Mac, Windows, Linux, and Chrome 各平台对应的软件,可以支持API接口的记录和测试。另外也支持接口的文档化与监控。 - soapui
官网地址:https://www.soapui.org/
自称是最好的REST & SOAP 测试工具,跟Swagger一样都是smartbear这个公司做的产品。可以支持做接口的功能测试、压力测试、安全测试、模拟测试。
相关推荐
本项目是基于Java的开源CRAP API接口管理平台设计源码,包含...该系统支持API接口管理、文档管理、数据库表管理、接口调试、浏览器调试插件、导出word&pdf接口等功能。项目结构清晰,代码可读性强,易于理解和维护。
开发API接口调用管理系统网站源码2024全新接口平台多用户管理系统 api接口调用教程2024全新开发API接口调用管理系统网站源码 附教程 用layui框架写的 个人感觉很简洁 方便使用和二次开发
"开发API接口调用管理系统网站源码2024全新接口平台多用户管理系统 api接口调用教程.zip"提供了一整套完整的源码及教程,旨在帮助开发者构建一个功能齐全、用户友好的API接口管理平台。 首先,源码基于layui框架...
API接口调用管理系统是软件开发中的重要组成部分,它主要用于管理和协调不同系统间的通信。2024全新开发的API接口调用管理系统网站源码提供了一种高效、有序的方式来组织和控制API的使用,确保系统的稳定性和安全性...
本项目是一个基于Java语言开发的API接口文档管理系统,包含213个文件,主要文件类型包括JAR包、图片、JavaScript脚本、CSS样式表、图片、Java源代码、JSP页面、XML配置文件、JSON配置文件、SQL数据库文件。...
1. 接口管理:对API接口进行分类、创建、编辑、删除等操作,以便于维护和追踪。 2. 接口文档:自动生成或手动编写API接口的详细文档,供开发人员参考。 3. 调用监控:记录和展示API接口的调用情况,包括调用频率、...
在API接口管理工具中,这个文件将帮助用户理解如何设置和使用这个工具。 `index.php`是PHP脚本的主入口文件,它包含了项目的启动逻辑。在这里,它可能包含了处理HTTP请求、连接数据库、调用业务逻辑以及生成响应的...
CRAP - 开源API接口管理平台 | 完全开源、免费使用的API接口管理系统,BUG管理系统:API接口管理、文档管理、数据库表管理、接口调试、浏览器调试插件、导出word&pdf接口…..,采用SpringMVC + MyBatis + Lucene + ...
《ThinkPHP内核API接口管理平台源码解析与应用》 在现代的互联网开发中,API接口已经成为构建分布式系统和微服务架构的核心组件。而针对API的管理平台则显得尤为重要,它能帮助开发者高效地组织、测试和监控API,...
2024全新开发API接口调用管理系统网站源码 附教程 用layui框架写的 个人感觉很简洁 方便使用和二次开发 搭建说明: 测试环境:Nginx + PHP7.0 + MySQL5.6 导入数据库 数据库配置文件修改路径: includes config.php ...
API接口管理系统是现代软件开发中的重要组成部分,尤其在微服务架构和分布式系统中扮演着核心角色。eoLinker-OS_3.X-CHN这样的工具就是专为满足这些需求而设计的,它提供了全面的接口管理和自动化测试解决方案,旨在...
2023全新API接口管理系统PHP程序源码 基于PHP原生,EasyWeb框架 附带两套模板 (可自行根据已有模板开发模板) 附带三套本地接口 (二维码生成,随机一言,每日早报) 安装教程 PHP版本支持5.6-7.4 MySQL5.5-5.7 上传...
1. **API接口版本管理** - 版本控制:海康威视设备API接口经历了多次更新迭代,如版本2.0修订版4。 - 修订历史:文档记录了每次修订的主要内容及修订人等信息,便于了解接口的发展历程及关键变更点。 2. **知识...
电商管理后台 API 接口文档
音乐API接口是应用程序编程接口(API)的一种,专门设计用于音乐相关的服务,如播放、搜索、推荐和获取音乐元数据。这些接口允许开发者构建音乐应用,整合音乐平台的功能,为用户提供丰富的音乐体验。 1. **API简介...
《大众点评API接口Demo详解与应用实践》 大众点评API接口Demo是开发者了解和使用大众点评平台服务的重要入口,它提供了多种编程语言的实例,包括ASP.NET、JavaScript、Java、PHP以及Android,使得开发者能够方便地...
1. 数据管理:Api-admin系统中的API接口源码包括了对数据的增删改查操作,如GET、POST、PUT、DELETE等基本请求方法。通过这些接口,开发者可以方便地对数据库中的数据进行操作,实现数据的动态管理。 2. 权限控制:...
"轻松API接口管理工具"是一个专为简化API接口文档管理和测试而设计的工具,它提供了清晰的界面和流程,帮助开发团队高效地管理和维护API。 这个工具的核心功能包括: 1. **API接口文档管理**:它允许用户创建、...