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运行接口后保存为测试实例来完成。

API可视化管理平台YApi的更多相关文章

  1. API统一管理平台-YApi

    前言:开发过程中,会产生很多接口对接操作,这个时候可能需要一个接口管理平台管理已经开发好的接口方便业务对接. 一.概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员 ...

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

    博主今天把API接口管理平台发布到github了,这次是更新一些功能 如支持本地数据库sqlite3.优化了数据结构 技术方面跟之前V1.0相同,只增加生产本地数据:但是为了支持层级的参数,修改了数据 ...

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

    今天博主终于完成了API接口管理平台,最后差的就是数据库的维护, 博主这里介绍下平台的设计原理,首先基于python,利用flask的web框架+bootstrap前端框架完成,先阶段完成了前台展示页 ...

  4. 分享一个开源免费、目前最好的API接口管理平台----eoLinker

    一.概况 eoLinker 是目前业内领先.国内最大的在线 API 接口管理平台,提供自动生成 API 文档.API 自动化测试.Mock 测试.团队协作等功能,旨在解决由于前后端分离导致的开发效率低 ...

  5. strapi 开源api && 内容管理平台试用

    strapi 是一个开源的api && 内容管理平台,功能操作起来还是比较方便简单的. 安装 使用docker && docker-compose 代码clone gi ...

  6. API开发管理平台eoLinker AMS 4.1版本发布:加入聚合空间,发布AMS专业版等

    eoLinker AMS是集API文档管理.API自动化测试.开发协作三位一体的综合API开发管理平台,是中国最大的在线API管理平台. eoLinker AMS 4.1更新内容: 1.新增" ...

  7. 接口管理平台Yapi

    1.介绍 YApi 是由去哪儿移动架构组推出的一款开源项目,是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务. 官网:https://yapi.ymfe. ...

  8. kong api可视化管理工具konga安装

    说明:官网推荐: kong-dashboard,但对比界面高端程度和友好度,更推荐konga.[一个坑]kong版本问题:我在安装时目前kong最新版本已经到1.0.0, 对于konga和kong-d ...

  9. YApi——手摸手,带你在Win10环境下安装YApi可视化接口管理平台

    手摸手,带你在Win10环境下安装YApi可视化接口管理平台 YApi YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建 ...

随机推荐

  1. 三层架构的一点理解以及Dapper一对多查询

    1.首先说一下自己对三层架构的一点理解 论坛里经常说会出现喜欢面相对象的写法,所以使用EF的,我个人觉得他俩没啥关系,先别反对,先听听我怎么说吧. 三层架构,基本都快说烂了,但今天还是说三层架构:UI ...

  2. HTTPS建立过程

    由于HTTPS建立过程经常忘记,固记录 HTTPS建立流程 客户端发起SSL连接 服务端发送证书(证书中包含了服务端公钥) 客户端根据已有证书判断是否是可信任的(客户端决定是否继续) 服务端要求客户端 ...

  3. C009:产品格式化输出

    代码: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int itemNum; float unitPric ...

  4. 【Java/DateTime】用当前日期时间与确定日期时间比较,大于则执行某动作

    代码: package logbackCfg; import java.text.ParseException; import java.text.SimpleDateFormat; import j ...

  5. JZOJ1496 页

    Description 战神阿瑞斯听说2008年在中华大地上,将举行一届规模盛大的奥林匹克运动会,心中顿觉异常兴奋,他想让天马在广阔的天空上,举行一场精彩的天马队列变换表演.首先,战神安排n头高度不同 ...

  6. python中反射 getattr(对象,'方法')()和hasattr(对象,'方法')

    getattr(对象,'方法')():从一个对象里面找到里面的方法,,, 传了一个对象,再传一个字符串,就能找到这个字符串的方法 hasattr(对象,'方法') 判断这个对象里面有没有这个方法,返回 ...

  7. [LeetCode]394. 字符串解码(栈)

    题目 给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次.注意 k 保证为正整数. ...

  8. NOIP2017 Day1 T1 小凯的疑惑

    题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小凯想知道在无法准确支付的物品中,最贵的价 ...

  9. 知识全聚集 .Net Core 技术突破 | 如何实现一个模块化方案一

    简介 模块化的介绍一共2篇 这一篇我们实现一个功能非常简单的StartupModules模块化. 第二篇我们来实现一个ABP的模块化效果. 思考 其实来简单想一下模块化的实验思路,写个接口=>模 ...

  10. Golang的Context介绍及其源码分析

    简介 在Go服务中,对于每个请求,都会起一个协程去处理.在处理协程中,也会起很多协程去访问资源,比如数据库,比如RPC,这些协程还需要访问请求维度的一些信息比如说请求方的身份,授权信息等等.当一个请求 ...