前后端开发过程中API接口管理有哪些痛点?附几种解决方案

一、API管理的痛点

API接口在设计时往往需要编写大量的文档,而且编写完成之后还会经常改动,文档编写维护工作量大。

接口文档编写好后,实际的代码可能会与文档有出入,这个时候文档是不准确的,文档与代码保持修改同步也是一个很大的工作量。随着接口版本的迭代,接口文档需要同步更新。有些时候接口会成为对接双方的开发进度瓶颈,因为接口调用会有依赖,类似app的项目,前端会需要调用后端接口,接口功能不实现会影响前端开发进度。接口开发完以后,做接口测试不方便,特别是接口数量多,参数复杂的情况,测试工作量大。接口在版本迭代后,旧的接口常常需要做回归测试,这个工作量也是非常大的。

二、解决思路

API接口管理系统化或平台化,可以直接在可视化API管理界面上方便的维护接口。而且最好有版本管理和权限管理。可视化维护好的接口可以直接生成对应语言的代码,节省代码开发量。

代码有变更时,最好还可以与界面上的接口进行同步。API界面能够提供模拟接口实现方的调用功能,这样就能解耦接口调用方与服务方的强进度依赖,可以先按API接口的消费方基于接口管理系统或平台模拟调用,待服务方准备好后再真实调用。而且这里的模拟最好能做到自定义规则的模拟返回。接口实际开发完成后,可以根据接口管理系统或平台的可视化测试界面,直接进行接口的实际调用测试。

接口平台能够支持自动化测试,可以自定义测试案例,然后自动化测试并生成可视化报告。这个功能在旧版本接口复测时非常有用。

当然实际落到系统的话,除了上述的核心功能,还有些关联功能。

三、解决方案

API接口管理应该是大部分公司都会面临的一个管理问题,因此也有很多现成的轮子可以直接拿来用。

这里结合我使用的经验与找到的案例简单介绍下:

3.1 国内解决方案

EasyAPI

官网地址:https://www.easyapi.com/

这是一家国内的在线API管理平台,提供API管理、API测试、API监控、API文档管理的综合性API服务。在前面提到的解决思路上额外还提供了API监控的功能。另外平台在一定使用人数下提供免费服务。

eoLinker

官网地址:https://www.eolinker.com

这是一家国内的在线API管理平台,同时也提供开源精简版本。该平台提供的功能非常全面,除了代码生成与同步这个功能外,基本涵盖了前面提到的解决思路中的所有功能。

DOClever

官网地址:http://doclever.cn

这是国内一家在线API接口管理平台,完全开源免费;该平台的功能十分全面,也十分完善;拥有根据业务场景进行接口自动化测试、API管理、API文档管理、团队协作、版本快照与回滚、Mock无缝对接、状态码管理等;可以说是现阶段国内接口管理平台中功能做的最好最完善的一家;

RAP

官网地址:http://rapapi.org/org/index.do

这是阿里巴巴公司的团队做的一个开源的API管理系统,功能也还比较全面。除了没有代码生成与同步、自动化测试、状态码管理功能,解决思路中提到的功能基本都有。

CrapApi

官网地址:https://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官网地址:https://apistudio.io/这个也是一个基于Swagger的在线API管理平台,可以做接口管理、接口模拟测试。整体的功能相对比较简单。

3.3. 综合比较

由于上述的平台我没有全部深度使用过,所以就功能易用度不作评价,基于各平台的介绍与简单使用做下分析比较。从设计上来说,国外的Swagger和apiary都有统一的开源接口规范,这样就有了搭建生态的前提,然后创建对应的工具集就会非常实用有效。这里相比而言Swagger的生态又更加成熟些。从功能完备度或商业化程度上来说,国内的EasyAPI、eoLinker、DOClever、RAP,国外的Swagger、apiary都还不错;其中以DOClever、Swagger最为突出。综合比较下来,个人觉得Swagger是在API管理这方面做得最好的,商用的话eoLinker和EasyAPI都可以考虑,如果考虑到成本或者需要开源的系统,那DOClever系统不错。当然实际需求不同公司是千差万别的,最适合的才是最好的,至于哪个更适合就需要自己根据实际情况去比较了。

四、思路扩展

API接口管理还是很大的应用场景的,特别是移动端开发、前后端分离、微服务化的情况下。这方面不管是做开源、还是做商用版本,还是大有可为的。而对于开源版本,想做成生态定义个统一规范,再基于规范做工具集、集成平台就会非常利于发展,就像Swagger一样。另外还可以支持与其它接口关联的功能动态集成,这样功能就会越来越强大。

五、扩展介绍

API测试的工具

Postman

官网地址:https://www.getpostman.com

有Mac, Windows, Linux, and Chrome 各平台对应的软件,可以支持API接口的记录和测试。另外也支持接口的文档化与监控。

DOClever

官网地址:http://doclever.cn

可完全在线根据业务场景进行接口自动化测试,24小时定时轮询测试;

Soapui

官网地址:https://www.soapui.org/

自称是最好的REST & SOAP 测试工具,跟Swagger一样都是smartbear这个公司做的产品。可以支持做接口的功能测试、压力测试、安全测试、模拟测试。

时间: 2024-11-11 02:37:55

前后端开发过程中API接口管理有哪些痛点?附几种解决方案的相关文章

前后端分离后台api接口框架探索

前言 很久没写文章了,今天有时间,把自己一直以来想说的,写出来,算是一种总结吧!  这篇文章主要说前后端分离模式下(也包括app开发),自己对后台框架和与前端交互的一些理解和看法.     前后端分离,一般传递json数据,对于出参,现在通用的做法是,包装一个响应类,里面包含code,msg,data三个属性,code代表状态码,msg是状态码对应的消息,data是返回的数据. 如  {"code":"10008","message":"

(Swagger)一个终端和后台开发对api接口管理工具

Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单. 为了方便的管理项目中API接口,在网上找了好多关于API接口管理的资料,感觉目前最流行的莫过于Swagger了,功能强大,UI界面漂亮,并且支持在线测试等等 Swagger – The World

django的crsf机制防御详解及在前后端分离中post数据到django-vue

django的crsf机制防御详解及在前后端分离中post数据到django 更新于: 2018-07-28 |  分类于 django CSRF(Cross Site Request Forgery) 跨站点伪造请求 某个用户已经登陆了你的网站,另外有一个恶意的网站有一个指向你网站的链接,那么当用户点击这个链接时,就会请求你的网站,但是你的网站以为是用户发来的请求,这时恶意网站就得逞了. django的应对措施 用户在post请求时,发送给用户一个token,然后在django内部实现了一个校

Spring Boot + Vue 前后端分离开发,权限管理的一点思路

在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器来实现功能),如果用户不具备某一个角色或者某一个权限,则无法访问某一个页面. 但是在前后端分离中,页面的跳转统统交给前端去做,后端只提供数据,这种时候,权限管理不能再按照之前的思路来. 首先要明确一点,前端是展示给用户看的,所有的菜单显示或者隐藏目的不是为了实现权限管理,而是为了给用户一个良好的体验,不能依靠前端隐藏控件来实现权限管理,即数据安全不能依靠前端. 这点就像普通的表单提交一样,前端做数据

前后端分离后API交互如何保证数据安全性

前后端分离后API交互如何保证数据安全性? 一.前言 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合.无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互. 网页或者app,只要抓下包就可以清楚的知道这个请求获取到的数据,这样的接口对爬虫工程师来说是一种福音,要抓你的数据简直轻而易举. 数据的安全性非常重要,特别是用户相关的信息,稍有不慎就会被不法分子盗用,所以我们对这块要非

Flask框架学习笔记(API接口管理平台 V2.0)

博主今天把API接口管理平台发布到github了,这次是更新一些功能 如支持本地数据库sqlite3.优化了数据结构 技术方面跟之前V1.0相同,只增加生产本地数据:但是为了支持层级的参数,修改了数据结构,下面是新的model.py 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from app import db 5 6 7 class User(db.Model): 8 user_id = db.Column(db.Integer

nodejs--JWT 在前后端分离中的应用与实践

nodejs--JWT 在前后端分离中的应用与实践 http://www.cnblogs.com/lidongyue/p/5269695.html

基于python的API接口管理平台开发(V1.0)

今天博主终于完成了API接口管理平台,最后差的就是数据库的维护, 博主这里介绍下平台的设计原理,首先基于python,利用flask的web框架+bootstrap前端框架完成,先阶段完成了前台展示页 二期要加入登录退出,后台管理 下面是文档结构图 涉及的python第三方模块:flask.flask-bootstrap.sqlalchemy 整体页面的布局:页头的导航,右侧的API分类,页面信息 页面信息内容包括:接口说明,请求参数,返回参数,请求示例,返回示例 下面是定义数据库对象的mode

数字IC前后端设计中Setup违反的修复方法

本文转自:自己的微信公众号<集成电路设计及EDA教程> 数字IC设计中Setup的分析与优化贯穿前后端设计中,最好在开始后端设计之前就获得一个没有Setup违反的网表,下面按照从前到后的流程逐一讲解每个阶段如果出现Setup违反该如何解决.下面用到的命令,主要针对的是Synopsys公司的综合工具DC以及布局布线工具ICC.还有需要注意的是,Setup的修复和之后要讲解的Hold的修复有很大的不同,Setup的违反随着布局到布线阶段的推进,它是越来越恶化的,不像Hold,线延迟会有益于Hold