API可视化管理平台YApi
Yapi是什么
YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
我主要使用方式如下:
- 项目集成swagger, 接口添加api注解
- 导出api-docs.json
- YApi导入api-docs.json
那么,既然swagger有了为啥还要多做一步导入YApi呢。因为YApi有更友好的查看管理,结合测试,可以有效表现api定义和示例。
另外,有的项目无法对外提供swagger接口,受环境限制。swagger也不适合多个项目的api管理。
后端定义好api结构,然后导入YApi, 在测试里输入样例参数,直接丢给前端即可完全实现前后端分离,有效提高api对接联调速度。
Yapi安装
官方地址: https://github.com/YMFE/yapi/
也可以通过docker安装 https://github.com/Ryan-Miao/docker-yapi
关于插件:加入一些登录插件,比如cas,需要编译client, 执行
npm install && npm run build-client
这时候, 官方源码会报错,主要是babel插件和eslink错误。见 https://github.com/YMFE/yapi/pull/1937
账号管理和权限
可以配置邮箱注册后缀,只允许公司内部用户邮箱注册。 也可以接入sso插件,接入公司的LDAP或者SSO,CAS等, 统一管理用户。
与Swagger集成
与swagger集成有两种方式, 一种是手动导入api-docs.json, 这种方式适用于yapi和api服务网络不通,只能手动维护的情况。
另一个就是在线自动同步,只要填入swagger的地址就可以了。
我们导入swagger官方示例: https://petstore.swagger.io/v2/swagger.json
查看接口定义
根据swagger定义的参数和返回值对象,yapi对应都有解析到。
执行接口
点击运行, 和swagger postman一样,可以直接执行接口。
这里有个问题,前后端分离后,接口鉴权通常是通过header传递token实现的。官方默认实现没有提供自定义header的功能。还有yapi架构设计很好,开源,有很多插件可以参考。
比如: https://github.com/shouldnotappearcalm/yapi-plugin-interface-oauth2-token
具体用法见: https://blog.csdn.net/shouldnotappearcalm/article/details/104726505
保存执行结果
刚才运行的接口点击保存,我们的参数就保存下来了。后面直接告诉前端同学地址,他可以通过测试用例来调用api。
测试用例
yapi相比swagger另一个比较好的功能就是测试和mock。先不说mock,就说测试api,后端开发好api后, 还要告诉前端怎么调用。有时候, 数据库的数据有限,还要告诉前端哪些参数可用,可以跳通。这些可以通过yapi运行接口后保存为测试实例来完成。
- 双拼域名yansuan.com被木雨林收购
- open-falcon ---安装Dashboard时候报错"SSLError: The read operation timed out"
- Flash/Flex学习笔记(37):不用系统组件(纯AS3)的视频播放器--只有8.82K
- Flash/Flex学习笔记(35):如何正确监听Stage对象的事件
- Flash/Flex学习笔记(34):AS3中的自定义事件
- 字符串处理总结(旧)
- 计算某年某月的某一天是星期几的算法
- Flash/Flex学习笔记(33):如何用As3协同Flash CS IDE控制MovieClip实例
- live writer的折腾
- 用C语言写的万年历---亲手写的。好累哦
- Flash/Flex学习笔记(32):播放音乐并同步显示lyc歌词(适用于Silverlight)
- Flash/Flex学习笔记(31):对象拖拽与投掷
- 如何评价张小龙在2016微信公开课的演讲
- VS2010如何做WAP开发
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP实现通过文本文件统计页面访问量功能示例
- 解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
- python里的单引号和双引号的有什么作用
- 在PHP中输出JS语句以及乱码问题的解决方案
- 使用Keras中的ImageDataGenerator进行批次读图方式
- php用xpath解析html的代码实例讲解
- PHP操作路由器实现方法示例
- python能在浏览器能运行吗
- Python使用OpenPyXL处理Excel表格
- php如何比较两个浮点数是否相等详解
- keras 回调函数Callbacks 断点ModelCheckpoint教程
- Mac下快速搭建PHP开发环境步骤详解
- PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
- Ajax+PHP实现的模拟进度条功能示例
- python实例化对象的具体方法