安装(Docker)

源镜像:https://github.com/fjc0k/docker-YApi

修改后的版本:https://github.com/xwj-vic/yapi

文档介绍:https://blog.opendeveloper.cn/yapi/docker

参数配置可看:fjc0k/docker-YApi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: '3'

services:
yapi-web:
image: xuweijie1015/yapi:latest
container_name: yapi-web
ports:
- 40001:3000
environment:
- YAPI_ADMIN_ACCOUNT=admin@eryajf.net
- YAPI_ADMIN_PASSWORD=xxx
- YAPI_NPM_REGISTRY=https://registry.npmmirror.com
- YAPI_CLOSE_REGISTER=true
# mongo集群模式
- YAPI_DB_CONNECT_STRING=mongodb://xxx:xxx@xxx:27017,xxx:27017,xxx:27017/yapi?replicaSet=xxx&authSource=admin&slaveOk=true
# mongo单机模式
# - YAPI_DB_SERVERNAME=xxx
# - YAPI_DB_PORT=27017
# - YAPI_DB_DATABASE=yapi
# - YAPI_DB_USER=xxx
# - YAPI_DB_PASS=xxx
# - YAPI_DB_AUTH_SOURCE=admin
- YAPI_MAIL_ENABLE=false
- YAPI_LDAP_LOGIN_ENABLE=true
- YAPI_LDAP_LOGIN_SERVER=ldap://xxx:389
- YAPI_LDAP_LOGIN_BASE_DN=cn=admin,dc=extension,dc=cn
- YAPI_LDAP_LOGIN_BIND_PASSWORD=xxx
- YAPI_LDAP_LOGIN_SEARCH_DN=ou=people,dc=extension,dc=cn
- YAPI_LDAP_LOGIN_SEARCH_STANDARD=&(objectClass=inetOrgPerson)(cn=%s)
- YAPI_LDAP_LOGIN_EMAIL_POSTFIX='@eryajf.net'
- YAPI_LDAP_LOGIN_EMAIL_KEY=mail
- YAPI_LDAP_LOGIN_USERNAME_KEY=cn
- YAPI_PLUGINS=[{"name":"notifier","options":{"host":"https://yapi.extension"}},{"name":"pl-auto-test","options":{"host":"https://yapi.extension","esHost":"xxx","esUsername":"xxx","esPwd":"xxx","indexName":"yapi-auto-test","dataSource":"pl"}},{"name":"import-swagger-customize"},{"name":"export-schema"}]
volumes:
- ./data/db:/data/db
restart: unless-stopped

已支持的插件

docker镜像支持以下插件,在启动文件中添加对应配置即可

  • yapi-plugin-add-user

  • yapi-plugin-api-watch

  • yapi-plugin-export-schema

  • yapi-plugin-import-swagger-customize

  • yapi-plugin-interface-oauth2-token

  • yapi-plugin-notifier

  • yapi-plugin-pl-auto-test【改自:https://github.com/congqiu/yapi-plugin-auto-test】

    • 创建项目

    • 设置 -> 项目设置配置好环境

    • 找到设置 -> token配置 中复制下token,下边会用到

    • 添加接口

    • 添加测试集合,然后将所需测试接口导入进来

    • 在测试集合右上方可找到服务端测试【下方url需要拷贝出来,下边会用到】规则配置【对该url所访问结果进行比对配置】

    • 进入自动化测试

      • 添加自动化测试计划

      • 配置好计划名称、测试URL【这里填写上边拷贝出来的url,然后协议和域名必须填写为http://localhost:3000】,如下:

        http://localhost:3000/api/open/run_auto_test?id=xxx&token=xxx&mode=html&email=false&download=false

      • 配置企业微信/webhook【可选】

    • 上方url中详细参数说明:

      • id是测试用例集合的id
      • token可在项目配置的token配置中找到
      • mode是测试报告的格式:【html、json】
      • email指是否发送邮件:【true、false】
      • download为false时直接展示测试报告,为true时会以文件形式下载下来:【true、false】
  • yapi-plugin-qsso

  • yapi-plugin-webhook

数据的导入导出

注:yapi仅支持导入导出postman v1版本数据,但是Postman 已弃用v1版本,所以这里旨在将v1和v2进行下转换

普通模式(normal):不导入已存在的接口;

智能合并(good):已存在的接口,将合并返回数据的 response,适用于导入了 swagger 数据,保留对数据结构的改动;例如,用户对字段code 添加了mock信息, 当再次数据导入的时候 mock 字段将不会被覆盖

完全覆盖(mergin):不保留旧数据,完全使用新数据,适用于接口定义完全交给后端定义, 默认为 normal

老版本Postman导入导出:可直接支持v1 版本【现已不再支持】

  • 首先在 postman 导出接口
  • 选择 collection_v1,点击 export 导出接口到文件 xxx
  • 打开 yapi 平台,进入到项目页面,点击数据管理,选择相应的分组和 postman 导入 方式, 选择刚才保存的文件路径,开始导入数据

新版本Postman的导入导出:Convert v2 to v1

postman导入仅支持v1版本,可参考https://github.com/postmanlabs/postman-collection-transformer: v2 convert to v1

先决条件:

第一步: 安装NPM包 postman-collection-transformer 使用以下命令

npm install -g postman-collection-transformer

步骤2:从Postman生成Postman集合

步骤3: 运行以下命令生成V1 collection。

postman-collection-transformer convert --input ./Postman_collection-V2.json --input-version 2.0.0 --output ./Postman_collection-V1.json --output-version 1.0.0 --pretty --overwrite

导出为swagger

yapi不支持直接导出postman可用collection,但是可以导出swagger,然后再导入postman

接口测试请求

先安装插件 yapi-x

通过 Chrome 官方商店安装

https://chrome.google.com/webstore/detail/yapi-x/ebiododddhjccikhminneafpoppneknc

手动安装

下载插件并解压

点击下面的链接下载最新版插件,并且解压:

https://cdn.jsdelivr.net/npm/yapi-x-chrome-extension/archive.zip

加载插件

首先,复制下面的链接在地址栏打开 Chrome 的扩展程序:

chrome://extensions

然后,打开 开发者模式:

最后,点击 加载已解压的扩展程序 导入插件即可:

发送请求测试