YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
我主要使用方式如下:
那么,既然swagger有了为啥还要多做一步导入YApi呢。因为YApi有更友好的查看管理,结合测试,可以有效表现api定义和示例。
另外,有的项目无法对外提供swagger接口,受环境限制。swagger也不适合多个项目的api管理。
后端定义好api结构,然后导入YApi, 在测试里输入样例参数,直接丢给前端即可完全实现前后端分离,有效提高api对接联调速度。
官方地址: 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集成有两种方式, 一种是手动导入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运行接口后保存为测试实例来完成。