我们为什么需要API管理系统?

我们为什么需要API管理系统?

随着web技术的发展,前后端分离成为越来越多互联网公司构建应用的方式。前后端分离的优势是一套Api可被多个客户端复用,分工和协作被细化,大大提高了编码效率,但同时也带来一些“副作用”:

  1. 接口文档不可靠。很多小伙伴管理接口文档,有使用wiki的,有word文档的,甚至还有用聊天软件口口相传的,后端接口对于前端就像一个黑盒子,经常遇到问题是接口因未知原因增加参数了,参数名变了,参数被删除了。
  2. 测试数据生成方案没有统一出口。我们都有这样的经历,前端开发功能依赖后端,解决方案有自己在代码注入json的,还有后端工程师临时搭建一套测试数据服务器,这种情况下势必会影响工作效率和代码质量,也不能及时进行更新。
  3. 资源分散,无法共享。接口调试每个开发者单独维护一套Postman接口集,每个人无法共用其他人的接口集,存在大量重复填写请求参数工作,最重要的是postman没法跟接口定义关联起来,导致后端没有动力去维护接口文档。

除了以上三点,对于我们公司的开发流程又会出现以下问题:

  1. 由于咱们公司的开发形式为多任务并行,前端与后端齐头并进各自开发,虽然原型只有一份,但是每个人的理解可能不止一种,这就导致当前后端都完成各自的前置后进行接口对接时出现字段不一致,多字段或少字段等问题,然后其中一方甚至双方对之前产出的代码进行更改,这里就会浪费大量的时间。
  2. 现在咱们项目的接口文档主要依靠word进行编写,一旦接口出了问题,更改文档的过程会十分繁琐耗时。

除了以上问题之外,我们可能还会遇到一些其他问题,比如文档的导出,模块的划分,操作的便捷性等等。带着这些问题我对国内外的一些接口管理系统做了简单的调查,推荐度较高的有一下几个:

 有哪些好用的API管理系统?
  1. 阿里妈妈前端团队出品的rap,目前有两个版本,rap1和rap2这个是我相当推荐的一款应用,随便一搜rap1绝对是被力荐的那一个,它操作简单,项目模块划分清晰,能够进行多版本的回退,可以把接口直接复制或者移动到另一个地方并且还是开源的。不过缺点也挺明显,没有导出功能,无法mock数据,线上demo没法使用,貌似现在已经没人在维护了,但是即便是这样他还是被众多网友推荐,当然在rap1的使用过程中还是很顺滑的。免费开源

  2. Swagger是全球最大的API开发框架,这个框架以“开放API声明(OpenAPISpecification,OSA)”为基础,支持整个API生命周期的开发。它可以和SpringMVC整合,并且通过结合Swagger-ui组件,将controller层的方法进行可视化的展示,像方法注释,方法参数,方法返回值等都提供了相应的用户界面。收费
    • 优点:

      • 在线生成API文档并测试,易维护;
      • 可以和多种不同框架整合(除了SpringMVC,还有struts2,jersey2,cxf等等),应用范围广;
      • 测试的时候不需要再使用浏览器输入URL的方式来访问Controller,使用简单方便,学习成本低。
    • 缺点:

      • 没有导出的功能,文档只能在线看及在线测试,不能导出到本地。
      • 部署比较麻烦,不易上手,对开发者的英文要求较高。

  3. eolinker真的也很好用,ui好看,可导入导出,版本回退,能够mock数据,而且还是不断地迭代中,相信后面会有越来越多的新功能,也能够更贴近用户实际需求。不过他有一个缺点而且还很致命,就是得花钱。。免费版的只能加入五个开发人员,只能导出为eolinker和HTML格式,想要体验其他功能就得付费喽。部分收费

  4. YApi是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。Apache License 2.0
    • 优点:
      • 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
      • 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
      • 类似 postman 的接口调试
      • 自动化测试, 支持对 Response 断言
      • MockServer 除支持普通的随机 mock 外,还增加了 Mock
      • 期望功能,根据设置的请求过滤规则,返回期望数据
      • 支持 postman, har, swagger 数据导入
      • 免费开源,内网部署,信息再也不怕泄露了
    • 缺点:
      • 如果要强行加个缺点的话,就是项目的模块划分不太合理,比如:生产排程-工厂日历,这么 一个层级关系它是体现不出来的。

  5. showdoc是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率。免费开源
    • 特性
      • API文档( 查看Demo)随着移动互联网的发展,BaaS(后端即服务)越来越流行。服务端提供API,APP端或者网页前端便可方便调用数据。用ShowDoc可以非常方便快速地编写出美观的API文档。
      • 数据字典( 查看Demo)一份好的数据字典可以很方便地向别人说明你的数据库结构,如各个字段的释义等。
      • 说明文档 你完全可以使用showdoc来编写一些工具的说明书,也可以编写一些技术规范说明文档以供团队查阅
    • 功能
      • 分享与导出
        • 响应式网页设计,可将项目文档分享到电脑或移动设备查看。同时也可以将项目导出成word文件,以便离线浏览。
      • 权限管理
        • 响公开项目与私密项目
        • ShowDoc上的项目有公开项目和私密项目两种。公开项目可供任何登录与非登录的用户访问,而私密项目则需要输入密码验证访问。密码由项目创建者设置。
      • 项目转让
        • 项目创建者可以自由地把项目转让给网站的其他用户。
      • 项目成员
        • 你可以很方便地为ShowDoc的项目添加、删除项目成员。项目成员可以对项目进行编辑,但不可转让或删除项目(只有项目创建者才有权限)
      • 编辑功能
        • ShowDoc采用markdown编辑器,无论是编辑还是阅读体验都极佳很棒。如果你不了解Markdown,请在搜索引擎搜索"认识与入门 Markdown"
        • 在ShowDoc的编辑页面,点击编辑器上方的按钮可方便地插入API接口模板和数据字典模板。插入模板后,剩下的就是改动数据了,省去了很多编辑的力气。
      • 历史版本
        • ShowDoc为页面提供历史版本功能,你可以方便地把页面恢复到之前的版本。
  6. 易文档,让您轻松编写和维护高质量的文档。从需求文档、API文档、部署文档到使用手册,不同类型文档,满足您整个开发周期需求。 让协作者一看就懂,让接手人不再只能翻看代码上手, 这是一个让编写者感到畅快、阅读者舒心、沟通更顺畅的文档平台。不只是API管理

结语

本文只是列举出了我自己的比较中意的一些API管理平台,精力有限并未一一进行详细体验,读者有感兴趣的可以自行体验一下。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端接口修改工具 Requestly具体操作

更新于2023年8月12日18:17:56,插件版本可能会变,界面可能会有所变化 插件下载地址:https://chrome.google.com/webstore/detail/requestly-open-source-htt/mdnleldcmiljblolnjhpnblkcekpdkpa 注意,必须用谷歌浏览器,…

Python-OpenCV中的图像处理-模板匹配

Python-OpenCV中的图像处理-模板匹配 模板匹配单对象的模板匹配多对象的模板匹配 模板匹配 使用模板匹配可以在一幅图像中查找目标函数: cv2.matchTemplate(), cv2.minMaxLoc()模板匹配是用来在一副大图中搜寻查找模版图像位置的方法。 OpenCV 为我们提…

强制Edge或Chrome使用独立显卡【WIN10】

现代浏览器通常将图形密集型任务卸载到 GPU,以改善你的网页浏览体验,从而释放 CPU 资源用于其他任务。 如果你的系统有多个 GPU,Windows 10 可以自动决定最适合 Microsoft Edge 自动使用的 GPU,但这并不一定意味着最强大的 GPU。 …

力扣初级算法(数组拆分)

力扣初级算法(数组拆分) 每日一算法: 力扣初级算法(数组拆分) 学习内容: 1.问题描述 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) …

leetcode 6914. 翻倍以链表形式表示的数字

给你一个 非空 链表的头节点 head ,表示一个不含前导零的非负数整数。 将链表 翻倍 后,返回头节点 head 。 示例 1: 输入:head [1,8,9] 输出:[3,7,8] 解释:上图中给出的链表,表示数字 189 。返…

ubuntu下FFmpeg安装和使用以及CMakeLists.txt模板

sudo apt install ffmpeg sudo apt-get install libavfilter-devcmakelist模板 CMakeLists.txt cmake_minimum_required(VERSION 3.16) project(ffmpeg_demo)# 设置ffmpeg依赖库及头文件所在目录,并存进指定变量 set(ffmpeg_libs_DIR /usr/lib/x86_64-linux-gnu) …

Springboot MultipartFile文件上传与下载

yml文件配置是否可以上传及上传附件大小 servlet:multipart:# 允许文件上传enabled: true# 单个文件大小max-file-size: 20MB# 设置总上传的文件大小max-request-size: 50MB /*** param files* param request* Description 上传文件* Throws* Return java.util.List* Date 202…

prometheus监控k8s服务并告警到钉钉

一、监控k8s集群 要监控k8s集群需要使用到以下服务用于收集监控的资源信息,node_exporter用于监控k8s集群节点的资源信息,kube-state-metrics用于监控k8s集群的deployment、statefulset、daemonset、pod等的状态,cadvisor用于监控k8s集群的p…

关于Linux文件系统只读问题的修改笔记

1.问题 2. 原因 系统异常关机或者代码修改错误导致硬盘挂载出现问题开启只读模式,但是重启有时候可以解决。 3.解决方法 1. mount查看那个挂载的硬盘出现问题(ro标识只读) mount | grep ro2.找到硬盘,重新挂载即可 sudo mount -o remount,rw /sys/f…

基于Googlenet深度学习网络的人员行为动作识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 1. 原理 1.1 深度学习与卷积神经网络(CNN) 1.2 GoogLeNet 2. 实现过程 2.1 数据预处理 2.2 构建网络模型 2.3 数据输入与训练 2.4 模型评估与调优 3. 应用领域…

python技术栈 之 单元测试中mock的使用

一、什么是mock? mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。 二、mock的作用 特别是开发过程中上下游未完成的工序导致当前无法测试,需要虚拟某些特定对象…

3. 爬取自己CSDN博客列表(分页查询)(网站反爬虫策略,需要在代码中添加合适的请求头User-Agent,否则response返回空)

文章目录 步骤打开谷歌浏览器输入网址按F12进入调试界面点击网络,清除历史消息按F5刷新页面找到接口(community/home-api/v1/get-business-list)接口解读 撰写代码获取博客列表先明确返回信息格式json字段解读 Apipost测试接口编写python代码…

「已解决」iframe 本地生效 但是在测试环境不生效问题

背景 我有一个表格中一列是个详情,这个详情可被点击,点击后弹出抽屉,抽屉里是后端传给我详情字段的值对应的 url 的 iframe 展示。 问题是,在本地 localhost 下运行,ifame 运行正常,但是部署到测试环境就看…

到江西赣州ibm维修服务器之旅-联想X3850 x6黄灯故障

2023年08月15日,一位江西赣州工厂客户通过朋友介绍与冠峰售前工程师取得联系,双方对产品故障前后原因沟通的大致情况如下: 服务器型号:Lenovo system x3850 x6 为用户公司erp仓库服务器 服务器故障:正常使用过程中业…

第三章 图论 No.12欧拉回路与欧拉路径

文章目录 定义欧拉路径的性质:1123. 铲雪车边编号输出欧拉路径:1184. 欧拉回路点编号字典序最小输出欧拉路径:1124. 骑马修栅栏并查集判断有向图是否存在欧拉路径:1185. 单词游戏 定义 小学一笔画问题,每条边只经过一次…

Neo4j的使用场景_以及Windows版安装_欺诈检测_推荐_知识图谱---Neo4j图数据库工作笔记0003

可以看到使用场景,比如欺诈检测, 要建立图谱,才能进行,欺诈人员检测 可以看到图谱的各种应用场景 然后推荐引擎也需要,可以看到 在金融,旅行,求职招聘,保健,服务,媒体娱乐,都可以进行推荐 然后还有知识图谱 身份访问管理,这里,可以进行安全管理,可以挖掘出潜在关系,分析, 某…

Chapter 2 Crystal Dynamics 2.1 晶格振动

2.1 Lattice Vibration 晶格振动 Born-Oppenheimer Approximation Electrons’ movement: Electron theory free electron theoryenergy band theory Atoms’ movement crystal dynamicslattice vibration 当研究电子运动时,忽略原子运动;当研究原子…

JavaScript如何执行语句

目录 语法/词法分析 预编译 解释执行 预编译什么时候发生 js运行三步曲 预编译前奏 预编译步骤 巩固基础练习 语法/词法分析 按语句块的粒度解析成抽象语法树 ,分析该js脚本代码块的语法是否正确,如果出现不正确,则向外抛出一个语法错误&#x…

NSI45030AT1G LED驱动器方案为汽车外部及内部照明恒流稳流器(CCR)方案

关于线性恒流调节器(CCR):是一种用于控制电流的稳定输出。它通常由一个功率晶体管和一个参考电流源组成。CCR的工作原理是通过不断调节功率晶体管的导通时间来维持输出电流的恒定。当输出电流超过设定值时,CCR会减少功率晶体管的导…

探索未来:元宇宙与Web3的无限可能

随着科技的奇迹般发展,互联网已经成为了我们生活的不可分割的一部分。然而,尽管它的便利性和普及性带来了巨大的影响,但我们仍然面临着传统互联网体验的诸多限制。 购物需要不断在实体店与电商平台间切换,教育依然受制于时间与地…