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. 高可用服务之Keepalived基础入门

    前面我们聊了聊高可用集群corosync+pacemaker的相关概念以及相关工具的使用和说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/category/18 ...

  2. 以jar包为容器的java程序访问一同打到jar包里的配置文件的方法

    Java程序有时会被打到jar包里执行,同时src/main/resources里一些配置文件也会被打进去. 比如,src/main/resources下有一个box目录,里面有几个json文件,用m ...

  3. 操作BOM对象

    操作BOM对象 目录 操作BOM对象 1. 浏览器介绍 2. window 3. Navigator(不建议使用) 4. screan 5. location(重要) 6. document(内容:D ...

  4. 营销经验总结:如何才能提升h5游戏代入感?

    HTML5游戏拥有即点即玩,无需下载,并具备传播性广的特点,这就使得商家看到了无限商机,如何让产品更加深入人心,是游戏推广最为重要的环节.优秀的代入感才是游戏产品宣传的关键,那么有哪些要素的支撑才能确 ...

  5. jenkins通过API触发构建任务

    添加一个可变参数 配置token 参数用 ${参数名称} 引用 外部调用url地址:ip:port/view/视图名称/job/任务名称/buildWithParameters?token=test& ...

  6. Kubernetes探针踩坑记

    1. 荒腔走板 最近一两个月生产K8s集群频繁出现短时503 Service Temporarily Unavailable,还不能主动复现,相当郁闷,压力山大. HTTP 5xx响应状态码用于定义服 ...

  7. 使用阿里云OSS的服务端签名后直传功能

    网站一般都会有上传功能,而对象存储服务oss是一个很好的选择.可以快速的搭建起自己的上传文件功能. 该文章以使用阿里云的OSS功能为例,记录如何在客户端使用阿里云的对象存储服务. 服务端签名后直传 背 ...

  8. JS中call()、apply()、bind()的用法

    其实是一个很简单的东西,认真看十分钟就从一脸懵B 到完全 理解! 先看明白下面: 例1 obj.objAge;  //17 obj.myFun()  //小张年龄undefined 例2 shows( ...

  9. Java语言的优势

    首先, Java语言是一种纯粹的面向对象的编程语言.这样就决定了Java语言更能直接客观地反映现实生活中的对象,因此Java语言更适合大型的复杂系统开发. 其次, Java语言是一种平台无关的语言.  ...

  10. 218。重复元素II(重复元素的下标差值<=K)(哈希)

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k. 示例 1: 输入: nums ...