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

news2024/11/23 17:18:03

我们为什么需要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管理平台,精力有限并未一一进行详细体验,读者有感兴趣的可以自行体验一下。

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

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

相关文章

stm32g070的PD0/PD2 PA8和PB15

目前在用STM32G070做项目,其中PD2TIMER3去模拟PWM,PD0用作按键检测,测试发现PD0低电平检测没有问题,高电平检测不到,电路图如下图所示: 用万用表测试电平,高电平1.0V左右,首先怀疑硬…

高级SQL分析函数-窗口函数

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 SQL语句中,聚合函数在统计业务数据结果时起到了重要作用,…

nginx keepalived 本地二进制部署

文章目录 安装 nginx安装 keepalived卸载 nginx卸载 keepalived 安装 nginx wget http://nginx.org/download/nginx-1.24.0.tar.gz tar -xf nginx-1.24.0.tar.gz cd nginx-1.24.0/ ./configure --with-stream --prefix/usr/local/nginx make && make install修改nginx…

关于ChatGPT抽样调查:78%的人用于搜索,30%的人担心因它失业

人工智能早已不再被视为未来科技,而是越来越多地应用在时下人们的生活之中。根据DECO PROTESTE的调查,大约72%的葡萄牙人认为人工智能已经活跃于他们的日常。[1] 随着ChatGPT对各个行业的影响,也引发了人们关于这种人工智能模型潜力的争论&a…

【LeetCode】543.二叉树的直径

题目 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1: 输入:root [1,2,3,4,5]…

pwm接喇叭搞整点报时[keyestudio的8002模块]

虽然现在查看时间很方便,但是其实好像我的时间观念却越来越差。于是决定搞一个整点报时,时常提醒自己时光飞逝,不要老是瞎墨迹。 这篇主要讲一下拼装方式和配置,就差不多了。不涉及什么代码。3针的元器件,去掉正负接线…

地毯(暴力+差分两种方法)

题目描述 在 nx n 的格子上有 m 个地毯。 给出这些地毯的信息,问每个点被多少个地毯覆盖。 输入格式 第一行,两个正整数 n,m。意义如题所述。 接下来 m 行,每行两个坐标 (x_1,y_1) 和 (x_2,y_2),代表一块地毯,左上…

SQL-每日一题【1341. 电影评分】

题目 表:Movies 表:Users 请你编写一个解决方案: 查找评论电影数量最多的用户名。如果出现平局,返回字典序较小的用户名。查找在 February 2020 平均评分最高 的电影名称。如果出现平局,返回字典序较小的电影名称。 …

Ubuntu22.04复现SHADEWACHER(手动安你就慢了)

因为我是打算跑TC数据集,所以跳过audit安装。 我的Ubuntu使用的是清华源。 1. Parser Setup 1.1 g apt install g1.2 neo4j Ubuntu22.04换什么源都会导致无法定位软件包,添加neo4j的官方源又会导致不信任的源。 22.04以下的版本,直接用命…

div输入框的文字超过指定行数用省略号表示css

实现效果:超过四行用省略号表示 实现方法: .text{overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 4; // 自定义行数-webkit-box-orient: vertical; }

深度学习实战47-利用深度学习技术来解决复杂的人群计数问题,CrowdCountNet模型的应用

大家好,我是微学AI,今天给大家介绍一下深度学习实战47-利用深度学习技术来解决复杂的人群计数问题,CrowdCountNet模型的应用。本篇文章,我将向大家展示如何使用CrowdCountNet这个神奇的工具,以及它是如何利用深度学习技术来解决复杂的人群计数问题。让我们一起进入这个充满…

docker 基础知识

目录 1. 加载docker镜像 2. 显示所有的镜像 3. 执行镜像,生成容器, 每执行一次,便生成一个容器 4. 显示出container名称 5. 进入容器 6. 如何将文件传入容器内 首先要确保已经安装了docker。注意:服务器上若没有管理员权限&am…

Markdown编译器的使用

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Windows安装Go开发环境

Windows安装Go开发环境 一、Go语言下载地址 https://golang.google.cn/dl/ 二、设置工作空间GOPATH目录(Go语言开发的项目路径) 首先进入我的C盘(你放到其他盘也行),新建一个文件夹,名字叫做mygo(这个就是你的工作目…

问道管理:网上如何打新股?

随着资本市场的不断敞开,越来越多的人开始重视股票市场,并想经过网上打新股来取得更大的出资收益。但是,网上打新股的办法并不简略,怎样才能成功地打新股呢?本文将从多个角度剖析,协助广阔出资者处理这一问…

微软电脑surface键盘无法使用问题解决

昨天下班后,正常关掉电脑,今天来上班发现键盘无法使用了 打人工找到了解决方法 开机->到锁屏页面->使用屏幕键盘输入密码进入电脑 然后右键左下角的win图标 找到设备管理器->键盘 全部右键卸载 再找到设备管理->系统设备 把这个DTX也卸…

做外贸发布产品的最简单的方式

最近和一个朋友聊天,说到他朋友在开某平台的网店,因为抄袭某家的好评而被投诉罚款,而被罚款的原因是这个朋友太懒了,在挑选了一家店铺的好评后,就直接照抄不误,而且全部的好评语都是抄自这同一家的&#xf…

品牌推广革新之道:海外网红与内容营销的融合

随着数字时代的来临,品牌推广的方式正在经历着革命性的变化。传统的广告手段逐渐失去了吸引力,而内容营销正成为品牌推广的新宠儿。尤其是海外网红的崛起,不仅改变了推广方式,更重新定义了品牌与消费者之间的互动关系。本文Nox聚星…

【Vue前端】设置标题用于SEO优化

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 1.vue全局配置2.创建并暴露getPageTitle方法3.通过全局前置守卫设置title4.页面上引用title5.项目使用中英文翻译,title失效 1.vu…

H2Miner变种,利用Redis漏洞入侵云服务器wa矿

H2Miner变种,最主要的特征是,入侵后 redis路径下很明显多了两个可执行的so文件,red2.so 和 exp_lin.so ; 该变种利用Redis 4.x/5.x 主从同步命令执行漏洞(CNVD-2019-21763)攻击云服务器,检测数据…