获取Yapi源码
在github上获取最新的yapi源码:
$ git clone https://github.com/YMFE/yapi.git ~/yapi
通过npm或cnpm安装依赖:
$ cd ~/yapi
$ npm install
这样准备工作就完成了一半了,接下来安装mongodb。
安装和配置MongoDB(Ubuntu 18.04)
一些说明
这一部分建议读完之后再进行操作,有些操作可能会产生一些问题,为避免不必要的麻烦,特此声明!
安装MongoDB服务端
安装MongoDB的服务端可以通过官网进行下载,记得选择与自己系统相匹配的版本
下载完成后,可以使用dpkg命令进行安装
$ sudo dpkg -i mongodb-org-server_4.2.2_amd64.deb
创建mongodb的默认数据目录
$ sudo mkdir -p /data/db
运行mongodb
$ sudo mongod
这样,mongodb服务就启动了。
安装MongoDB客户端
安装了服务端后,还要安装客户端才能够连接数据库进行控制,官网也提供了Mongo Shell,在Package处选择shell即可下载,不过由于是企业版本里的,我也没有去确认是否会收费,就没有尝试了。
我用的是Ubuntu包管理里的mongodb-clients
$ sudo apt install mongodb-clients
安装完成后,运行客户端
$ mongo
PS:如果通过包管理安装了mongodb-clients,最好还是通过包管理安装mongodb,下载的服务端可能和包管理中的客户端版本不匹配,然后被包管理卸载掉服务端,/(ㄒoㄒ)/~~
配置MongoDB
使用客户端连接mongodb后,需要创建yapi数据库
> use yapi
> db.yapi.insert({"name":"init_data"})
当然,你也可以用MongoDB Compass操作数据库。
添加用户
> use yapi
> db.createUser({
user: "yapi",
pwd: "123456",
roles: [ { role: "dbOwner", db: "yapi" } ]
})
如果发生
Error: couldn’t add user: Use of SCRAM-SHA-256 requires undigested passwords
请增加 mechanisms 属性
> use yapi
> db.createUser({
user: "yapi",
pwd: "123456",
roles: [ { role: "dbOwner", db: "yapi" } ],
mechanisms : ["SCRAM-SHA-1"]
})
对新增的用户进行验证
> use yapi
> db.auth('yapi','123456')
返回1的话就没有什么问题啦!记得一定要切换到对应数据库下建立用户!!!
配置Yapi
创建config.json配置文件
$ cd ~/yapi
$ cp config_example.json config.json
修改config.json文件
{
"port": "3000",
"adminAccount": "you_email_address@email.com",
"db": {
"servername": "127.0.0.1",
"DATABASE": "yapi", //这里是刚才创建的mongo数据库
"port": 27017,
"user": "yapi", //这里是刚才创建的用户
"pass": "123456",
"authSource": ""
}
最后就是运行Yapi了
$ cd ~/yapi
$ npm start
> yapi-vendor@1.8.6 start /home/liang/projects/git/yapi
> node server/app.js
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问:
http://127.0.0.1:3000/
log: mongodb load success...
PS:不知道是不是我哪里弄得不对,在yapi的目录直接运行npm start会找不到config.json配置文件,因为提示config.json文件的路径在"../../config.json",这个位置是相对"server/app.js"来说的,也就是yapi目录的上级目录,这个地方我不是很理解,所以我直接把文件里声明的路径改了。
//文件路径是 ~/yapi/server/yapi.js
const config = require('../../config.json'); //这里改成 ../config.json
这样Yapi目录中的config.json就可以正常生效了,log日志目录也可以采用类似的方式处理。