yapi接口管理工具
使用 Docker 部署 YAPI
1、运行 MongoDB
# 创建存储卷
docker volume create mongo-data# 启动 MongoDB
docker run -d \--name mongo-yapi \-v mongo-data:/data/db \-e MONGO_INITDB_ROOT_USERNAME=anoyi \-e MONGO_INITDB_ROOT_PASSWORD=anoyi.com \mongo
2、获取 YAPI 镜像,其他版本:阿里云镜像仓库
docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi
3、自定义配置文件
config.json
{"port": "3000","adminAccount": "admin@anoyi.com","timeout":120000,"db": {"servername": "mongo","DATABASE": "yapi","port": 27017,"user": "anoyi","pass": "anoyi.com","authSource": "admin"}
}
4、初始化 YAPI 数据库索引及管理员账号
docker run -it --rm \--link mongo-yapi:mongo \--entrypoint npm \--workdir /yapi/vendors \-v $PWD/config.json:/yapi/config.json \registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \run install-server
5、启动 Yapi 服务
docker run -d \--name yapi \--link mongo-yapi:mongo \--workdir /yapi/vendors \-p 3000:3000 \-v $PWD/config.json:/yapi/config.json \registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \server/app.js
使用 YAPI
访问: http://localhost:3000
登录账号:admin@anoyi.com
密码:ymfe.org
手动构建 YAPI 镜像
1、编辑 Dockerfile
FROM node:12-alpine as builder
WORKDIR /yapi
RUN apk add --no-cache wget python make
ENV VERSION=1.9.2
RUN wget https://github.com/YMFE/yapi/archive/v${VERSION}.zip
RUN unzip v${VERSION}.zip && mv yapi-${VERSION} vendors
RUN cd /yapi/vendors && cp config_example.json ../config.json && npm install --production --registry https://registry.npm.taobao.orgFROM node:12-alpine
MAINTAINER 545544032@qq.com
ENV TZ="Asia/Shanghai"
WORKDIR /yapi/vendors
COPY --from=builder /yapi/vendors /yapi/vendors
EXPOSE 3000
ENTRYPOINT ["node"]
注意将 Dockerfile
中的 VERSION
值修改为你需要构建的 YAPI 版本。
2、构建镜像
docker build -t yapi .
YAPI 升级
# 1、停止并删除旧版容器
docker rm -f yapi# 2、获取最新镜像
docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi# 3、启动新容器
docker run -d \--name yapi \--link mongo-yapi:mongo \--workdir /yapi \-p 3000:3000 \-v $PWD/config.json:/config.json \registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \server/app.js
制作本地的yapi docker镜像, docker-compose一键维护和部署.
YApi: Releases · YMFE/yapi · GitHub
制作本地的yapi docker镜像, docker-compose一键维护和部署.
- 初始化db, 开启自定义配置
git clone https://github.com/Ryan-Miao/docker-yapi.git
cd docker-yapi
docker-compose up
打开 localhost:9090
- 默认部署路径为
/my-yapi
(需要修改docker-compose.yml才可以更改) - 修改管理员邮箱
ryan.miao@demo.com
(随意, 修改为自己的邮箱) - 修改数据库地址为
mongo
或者修改为自己的mongo实例 (docker-compose配置的mongo服务名称叫mongo) - 打开数据库认证
- 输入数据库用户名:
yapi
(mongo配置的用户名, 见mongo-conf/init-mongo.js) - 输入密码:
yapi123456
(mongo配置的密码, 见mongo-conf/init-mongo.js)
docker-compose.yml文件内容
# Use root/example as user/password credentials
version: '3.1'services:mongo:image: mongo:4restart: alwaysenvironment:MONGO_INITDB_ROOT_USERNAME: adminMONGO_INITDB_ROOT_PASSWORD: admin123456MONGO_INITDB_DATABASE: yapivolumes:- ./mongo-conf:/docker-entrypoint-initdb.d- ./mongo/etc:/etc/mongo- ./mongo/data/db:/data/dbports:- 27017:27017healthcheck:test: ["CMD", "netstat -anp | grep 27017"]interval: 2mtimeout: 10sretries: 3yapi:build:context: ./dockerfile: Dockerfileimage: yapi# 第一次启动使用command: "yapi server"# 之后使用下面的命令# command: "node /my-yapi/vendors/server/app.js"volumes:- ./my-yapi:/my-yapiports:- 9090:9090- 3000:3000depends_on:- mongo
init-mongo.js文件内容
db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "root", db: "admin" } ] });db.auth("admin", "admin123456");db.createUser({user: 'yapi',pwd: 'yapi123456',roles: [{ role: "dbAdmin", db: "yapi" },{ role: "readWrite", db: "yapi" }]});
点击开始部署.
- 部署完毕后, 修改docker-compose.yml 启用
yapi:build:context: ./dockerfile: Dockerfileimage: yapi# 第一次启动使用,第一次启动要把这个注释开起来command: "yapi server"# 之后使用下面的命令,把上面的command语句行注释,把下面的注释开启#command: "node /my-yapi/vendors/server/app.js"
重启服务:
docker-compose up
访问 localhost:3000
- 输入用户名ryan.miao@demo.com(自己输入的管理员邮箱)
- 输入密码ymfe.org(默认的初始化密码, 之后可以修改)
然后可以导入一个swagger的接口数据试试:
前台启动确认没问题后, 直接转为 后台启动
docker-compose stop或者contrl+C
docker-compose up -d
数据备份
所有数据都在mongo中, 理论上建议使用自己搭建的mongo实例, 这里docker的mongo也可以使用, 只要备份本mongo数据即可.
可以使用mongodb的备份方式, 也可以直接备份mongo/data.
版本升级
可以看出, 只要重新找个机器部署一遍, 然后导入mongo数据即可.
一些配置
部署路径
容器采用的node:12-alpine
这个镜像, yapi部署目录默认为my-yapi
. 这里已经映射到本地磁盘, 也可以自己挂载想要的数据盘.
在docker-compose中配置了, 本地目录映射到容器目录my-yapi
volumes: - ./my-yapi:/my-yapi
Mongo配置
本方案直接使用docker-compose的mongo. 定义了初始化脚本init-mongo.js. 修改即可修改账号和密码.
插件等配置
已经把yapi部署文件给映射到磁盘了, 该怎么安装就怎么安装.
注意yapi目前处于无人维护状态,源码有一些问题,直接下载安装插件可能失败,具体见 API可视化管理平台YApi - Ryan.Miao - 博客园
.
├── doc
│ ├── init-2.jpg
│ └── init.jpg
├── docker-compose.yml
├── Dockerfile
├── mongo
│ ├── data
│ │ └── db
│ └── etc
├── mongo-conf
│ └── init-mongo.js
├── my-yapi
│ ├── config.json
│ ├── init.lock
│ ├── log
│ │ └── 2020-6.log
│ └── vendors
│ ├── aa.js
│ ├── CHANGELOG.md
│ ├── client
│ ├── common
│ ├── config_example.json
│ ├── exts
│ ├── LICENSE
│ ├── node_modules
│ ├── nodemon.json
│ ├── npm-publish.js
│ ├── package.json
│ ├── package-lock.json
│ ├── plugin.json
│ ├── README.md
│ ├── server
│ ├── static
│ ├── webpack.alias.js
│ ├── yapi-base-flow.jpg
│ └── ykit.config.js
├── readme.md
└── repositories
一键部署YApi
注意:本仓库目前只支持安装,暂不支持升级,请知晓。如需升级请备份mongoDB内的数据。
默认密码是:ymfe.org
,安装成功后进入后台修改
可修改变量
环境变量 | 默认值 | 建议 |
---|---|---|
VERSION | 1.10.2 | 强烈建议升级 |
HOME | /home | 可修改 |
PORT | 3000 | 可修改 |
ADMIN_EMAIL | test@test.com | 建议修改 |
DB_SERVER | mongo(127.0.0.1) | 不建议修改 |
DB_NAME | yapi | 不建议修改 |
DB_PORT | 27017 | 不建议修改 |
VENDORS | ${HOME}/vendors | 不建议修改 |
获取本镜像
docker pull mrjin/yapi:latest
docker-compose 部署
version: '2.1'
services:yapi:image: mrjin/yapi:latest# build: ./container_name: yapienvironment:- VERSION=1.10.2- LOG_PATH=/tmp/yapi.log- HOME=/home- PORT=3000- ADMIN_EMAIL=test@test.com- DB_SERVER=mongo- DB_NAME=yapi- DB_PORT=27017# restart: alwaysports:- 127.0.0.1:3000:3000volumes:- ~/data/yapi/log/yapi.log:/home/vendors/log # log dirdepends_on:- mongoentrypoint: "bash /wait-for-it.sh mongo:27017 -- entrypoint.sh"networks:- back-netmongo:image: mongocontainer_name: mongo# restart: alwaysports:- 127.0.0.1:27017:27017volumes:- ~/data/yapi/mongodb:/data/db #db dirnetworks:- back-net
networks:back-net:external: true
Nginx 配置
server {listen 80;server_name your.domain;keepalive_timeout 70;location / {proxy_pass http://yapi:3000;}location ~ /\. {deny all;}
}
启动方法
修改
docker-compose.yml
文件里面相关参数创建network:
docker network create back-net
启动服务:
docker-compose up -d
docker-YApi
要求
你得确保在你的设备上安装了不是太老版本的 Docker 和 Docker Compose。
安装
首先,克隆本项目:
git clone https://github.com/fjc0k/docker-YApi.git# 无法访问 github 的可使用国内镜像: git clone https://gitee.com/fjc0k/docker-YApi.git
接下来,修改 docker-compose.yml
中 yapi-web
下的环境变量 YAPI_ADMIN_ACCOUNT
为你的管理员邮箱,YAPI_ADMIN_PASSWORD
为你的管理员密码。
最后,执行 docker-compose up -d
启动服务。
然后,通过 http://localhost:40001
即可访问 YApi
。
如何配置
为了减少二次配置,docker-YApi
新增了 adminPassword
选项以设置管理员密码。
通过 config.json 或者 config.js 配置(不推荐)
config.json
是 YApi 官方支持的配置文件,config.js
是 docker-YApi
扩展支持的配置文件,其实就是将 JSON 数据写成了更简洁的 JavaScript 对象。
你可通过将外部的 config.json
或 config.js
配置文件映射进容器内部来使用它们:
./config.json:/yapi/config.json ./config.js:/yapi/config.js
通过环境变量配置(推荐)
通过环境变量配置的选项会覆盖通过 config.json
或者 config.js
配置的选项。
基础配置
环境变量名称 | 类型 | 说明 | 示例 |
---|---|---|---|
YAPI_ADMIN_ACCOUNT | string | 管理员账号(邮箱) | admin@foo.bar |
YAPI_ADMIN_PASSWORD | string | 管理员密码 | adm1n |
YAPI_CLOSE_REGISTER | boolean | 是否关闭注册,由于 docker-YApi 已内置相关插件,你可在关闭注册后在后台手动添加用户 | true |
YAPI_NPM_REGISTRY | string | npm 源,目前仅在安装插件时使用,默认官方源,国内可以设为淘宝源加速 | https://registry.npm.taobao.org |
数据库配置
环境变量名称 | 类型 | 说明 | 示例 |
---|---|---|---|
YAPI_DB_SERVERNAME | string | MongoDB 服务地址 | yapi-mongo |
YAPI_DB_PORT | number | MongoDB 服务端口 | 27017 |
YAPI_DB_DATABASE | string | 使用的 MongoDB 数据库 | yapi |
YAPI_DB_USER | string | 登录 MongoDB 服务的用户名 | root |
YAPI_DB_PASS | string | 登录 MongoDB 服务的用户密码 | r00t |
YAPI_DB_AUTH_SOURCE | string | MongoDB 身份认证所用库 | admin |
YAPI_DB_CONNECT_STRING | string | 使用 MongoDB 集群时配置 | mongodb://127.0.0.100:8418,127.0.0.101:8418/yapidb?slaveOk=true |
YAPI_DB_OPTIONS | json | Mongoose 连接 MongoDB 服务时的额外选项,一般不用设置。请参考: Mongoose.prototype.connect() | {} |
邮件配置
环境变量名称 | 类型 | 说明 | 示例 |
---|---|---|---|
YAPI_MAIL_ENABLE | boolean | 是否启用 | true |
YAPI_MAIL_HOST | string | 邮件服务地址 | smtp.163.com |
YAPI_MAIL_PORT | number | 邮件服务端口 | 465 |
YAPI_MAIL_FROM | string | 发送人邮箱 | foo@163.com |
YAPI_MAIL_AUTH_USER | string | 登录邮件服务的用户名 | bar@163.com |
YAPI_MAIL_AUTH_PASS | string | 登录邮件服务的用户密码 | f00bar |
YAPI_MAIL_OPTIONS | json | 传递给 Nodemailer 的额外选项,一般不用设置。请参考:Nodemailer > SMTP transport | {"tls":{"rejectUnauthorized":false}} |
LDAP 登录配置
点击查看 YApi 仓库下 LDAP 相关的 issues
yapi接口管理工具相关推荐
- Java后端接口自动生成神器 -- EasyYapi插件(Yapi接口管理工具在IDEA里的插件)
Java后端接口自动生成神器 – EasyYapi插件(Yapi接口管理工具在IDEA里的插件) 一.先看效果 1.生成yapi文档的效果 2.生成postman格式数据并导入接口测试类后的效果(如p ...
- 接口管理工具Yapi禁用注册功能的配置解决方案
之前公司运维安装了一个接口管理工具yapi,是通过docker安装的,时间有点久,安装的人也没了,容器是通过镜像/anoy/yapi安装的容器.默认yapi是可以开放注册的,因为公司外网开放的,所有发 ...
- YApi接口管理平台远程代码执行漏洞(含批量POC)
0x00简介 YAPI是由去哪儿网移动架构组(简称YMFE,一群由FE.iOS和Android工程师共同组成的最具想象力.创造力和影响力的大前端团队)开发的可视化接口管理工具,是一个可本地部署的.打通 ...
- jenkins构建后脚本不执行_接口管理工具ApiPost-预(后)执行脚本常用方法集合
本文主要讲解接口管理工具ApiPost的预执行脚本和后执行脚本里,常见的响应参数变量和常用方法集合. ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它 ...
- 写在国产接口管理工具ApiPost 5.2.5发布后的一些话
好多年没写文章了,突然想写些什么东西的时候,却卡顿如狗,瞬时自身的内存和CPU均红色报警,不知道从何处下笔. 遥想以前学生时代,本人还是语文老师口中的才子,曾多次向校报投稿,如今竟沦落到这个境地. 与 ...
- 利用ApiPost接口管理工具校验/测试API返回结果是否符合预期
本文主要讲解接口管理工具ApiPost的预执行脚本和后执行脚本里,怎么校验/测试接口返回结果是否符合预期? ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工 ...
- 组件分享之后端组件——阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos...
组件分享之后端组件--阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件 ...
- ApiPost与PostMan,你可以任选一款不错的接口管理工具
我们都知道在一个团队中是由很多角色组成的,例如:业务.产品.设计.前端.后端.测试.每个角色各司其职,一起合作完成项目的交付. 而前端与后端的沟通则是需要通过一个统一的文件进行沟通交流,即通过接口文档 ...
- 【云原生之Docker实战】使用Docker部署Rap2开源接口管理工具
[云原生之Docker实战]使用Docker部署Rap2开源接口管理工具 一.Rap2介绍 二.检查宿主机系统版本 三.检查本地docker环境 1.检查docker服务状态 2.检查docker配置 ...
- 接口规范文档总结、接口管理工具推荐、如何写出完美的接口
写在前面:这是我最近整理的接口规范文档,无规矩不成方圆,为了app开发人员与后台接口开发人员更好的配合,我特意整理了这么一篇文档供大家参考学习,如有意见请在评论区留言谢谢.因部分内容涉及公司代码,我对 ...
最新文章
- 音频编辑大师 3.3 注冊名 注冊码
- oracle10g总结
- Oracle高级查询之OVER (PARTITION BY ..)
- 作业收缴系统设计手册(自写开源小系统)
- docker搭建redis
- Android使用CountDownTimer倒计时
- cocos2d-xna在使用某些场景转换效果时的问题以及修复
- 【Spring】使用数据源连接池访问数据库
- android driver log,Android调试驱动抓log的方法
- R 学习笔记《十一》 R语言初学者指南--图形工具(续)
- 批量自动付款(京东)
- logistic回归分析优点_数据统计的理解和应用(十二)多因素logistic回归案例分析...
- 时间去哪儿了?--读《时间简史》有感
- java公路车的气嘴_5分钟了解运动自行车常见的两种气嘴
- 在美国成年人群体中,语音助手Siri已经成了第二大移动搜索引擎
- 网络安全kali渗透学习 web渗透入门 ARL资产侦察灯塔系统搭建及使用
- connected papers 白嫖攻略
- verilog学习:一个简单的入门verilog例子
- Protobuf 简介
- 常用的自动化管理工具