一、前言
在我们后端开发中,必不可少的是接口的交接,有很多种方式,常见的就是swagger
,不过这个侵入性太强了。还有就是接口文档的框架,比如今天小编带大家一起搭建的yapi
,在公司还是挺常见的!
今天小编就大家从搭建到使用,详细的教学一波哈!!
二、介绍
1. 平台介绍
YApi 是高效、易用、功能强大的 api 管理平台
,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
2. 特性
- 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
- 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
- 类似 postman 的接口调试
- 自动化测试, 支持对 Response 断言
- MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回- – 期望数据
- 支持 postman, har, swagger 数据导入
- 免费开源,内网部署,信息再也不怕泄露了
3. 环境支持
- nodejs(7.6+)
- mongodb(2.6+)
- git
在docker中只需要搭建一下mongo
,用来数据的存储即可!
三、运行mongo
0. 创建网络
docker network create yapi
1. 创建挂载文件
mkdir -p /data/mongo
2. 运行mongo
docker run -d /
--name mongodb /
--restart always /
--net=yapi /
-p 27017:27017 /
-v /data/mongo:/data/db /
-e MONGO_INITDB_DATABASE=yapi /
-e MONGO_INITDB_ROOT_USERNAME=yapi /
-e MONGO_INITDB_ROOT_PASSWORD=yapi /
mongo
启动 MongoDB,其中 -e 指定 MONGO_INITDB_ROOT_USERNAME 为 MongoDB 的 ROOT 用户名,MONGO_INITDB_ROOT_PASSWORD 为 MongoDB 的 ROOT 用户密码
3. 进入容器初始化数据库
进入 MongoDB 容器,从上图查看 MongoDB 容器可以获取到容器 id,以下示例使用 50f1f6c50139
代表 MongoDB 的容器 id,只需要简写即可!
docker exec -it 50 /bin/bash
接着输入:
mongosh
新版本需要加上sh,不然无法进入!
use admin;
db.auth("yapi", "yapi");
# 创建 yapi 数据库
use yapi;
# 创建给 yapi 使用的账号和密码,限制权限
db.createUser({
user: 'yapi',
pwd: 'yapi',
roles: [
{ role: "dbAdmin", db: "yapi" },
{ role: "readWrite", db: "yapi" }
]
});
# 退出 Mongo Cli
exit
# 退出容器
Ctrl+P+Q
四、运行yapi
1. 搭建挂载配置文件
mkdir -p /data/yapi
vim config.json
{
"port": "3000",
"adminAccount": "wangzhenjun1221@163.com",
"timeout":120000,
"db": {
"servername": "mongo",
"DATABASE": "yapi",
"port": 27017,
"user": "yapi",
"pass": "yapi",
"authSource": ""
},
"mail": {
"enable": true,
"host": "smtp.gmail.com",
"port": 465,
"from": "*",
"auth": {
"user": "wangzhenjun1221@163.com",
"pass": "xxx"
}
}
}
:wq
退出
2. 初始化数据库表
docker run -d --rm /
--name yapi-init /
--link mongodb:mongo /
--net=yapi /
-v /data/yapi/config.json:/yapi/config.json /
yapipro/yapi /
server/install.js
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/294504.html