Window中配置Yapi
YAPI,一个神奇的接口管理平台
API接口在设计时往往需要编写大量的文档,而且编写完成后往往需要根据实际情况经常改动文档,这使得文档编写维护工作量相对较大,让很多的开发者都很头疼。
此外,伴随着接口版本的迭代开发,接口文档也需要同步更新。而且接口开发完成以后,做接口测试会十分不方便,要是遇上接口数量多、参数负载的情况,那不仅不方便,测试工作量会重上加重。
我们还经常会因为交付周期短且急的原因,需要接入一个第三方的库,而第三方的库通常都存在文档老旧,不够全面等等问题。这种等同没有文档的情况,对程序员来说相当棘手: 开发需要的接口不在文档上,文档上的接口不存在服务提供方的库里,又或者是少了一行关键的代码。这会使得接口开发的效率大幅下降,接口联调苦不堪言。
YAPI解决方案
YAPI简介
YAPI是由去哪儿网移动架构组(简称YMFE,一群由FE、iOS和Android工程师共同组成的最具想象力、创造力和影响力的大前端团队)开发的可视化接口管理工具,是一个可本地部署的、打通前后端及QA的接口管理平台。YAPI旨在为开发、产品和测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布和维护不同项目,不同平台的API。有了YAPI,我们可以很方便的测试、管理和维护多个项目的API接口,不像Swagger那样是随应用生和灭的(且线上环境下大多数须关闭),YAPI是一个独立的服务平台。
YAPI部署
- 环境要求
nodejs(7.6+)
mongodb(2.6+)
git
- 部署方式
方式一 可视化部署
执行yapi server 启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定url, 点击登录输入刚才设置的管理员邮箱,默认密码(ymfe.org) 登录系统(默认密码可在个人中心修改)。
npminstall-gyapi-cli--registryhttps://registry.npm.taobao.org
yapi server
方式二 命令行部署
如果github压缩文件无法下载,或需要部署到一些特殊的服务器,可尝试此方法
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置cd vendors
npminstall--production--registryhttps://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在config.json配置
node server/app.js //启动服务器后,访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
安装完了就有提示了,按照提示继续操作。切换到安装目录,把命令
node vendors/server/app.js
复制到命令行,启动服务。
控制台说
$ node vendors/server/app.js
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问:
http://127.0.0.1:3000/
log: mongodb load success...
看到地址已经是本地的ip了,说明我们部署成功了。
先松一口气之后,我看到控制台好像还没敢大喘气呢。启动了服务之后,控制台会处于等待状态。于是我Ctrl+c结束了进程,使用
vim ~/.bash_profile
编辑这个文件,在文件里加入一个函数
function startyapi {
cd /Volumes/Work/my-yapi
nohup node vendors/server/app.js &
}
使用:wq保存,在控制台使用
source ~/.bash_profile
使刚才的改动生效。
在控制台输入
startyapi
可以看到已经在后台启动了。
$ startyapi
[2] 78163
appending output to nohup.out
如果想要关闭服务,可以使用
lsof -i tcp:3000
来查看端口占用。
$ lsof -i tcp:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 78163 hlp 22u IPv6 0x673f644c16150d2d 0t0 TCP *:hbci (LISTEN)
使用
sudo kill 78163 #这里是你具体查出来的PID
来结束进程,就关闭了yapi的服务。
配置解析
按上边配置完,你已经可以使用yapi的功能了。每次需要使用的时候,你都需要访问http://127.0.0.1:3000/来使用。看看别人家,都用内网域名
http://yapi.company.com
了。不过你不用慌,接下来我们配置解析。
安装nginx
配置解析之前需要安装nginx服务器,如果你有brew,那就直接执行
brew install nginx
。或者去百度搜一搜nginx的安装教程。
配置hosts
使用命令
sudo vim /etc/hosts
编辑hosts,添加一行解析
127.0.0.1 yapi.company.com
。按:wq保存。
这样配置完,所有来自yapi.company.com的请求就都被发送到本地了。
配置nginx反向代理
一般安装完nginx如果你不乱动的话,配置文件在
/usr/local/etc/nginx/nginx.conf
在最后一个}上边增加一行
include servers/*.conf;
,新建目录servers,再新建文件yapi.company.com.conf,把下边的配置信息粘贴进去。
map $http_upgrade $connection_upgrade {
default upgrade;
‘’ close;
}
server{
listen 80;
server_name yapi.company.com;
charset utf-8;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_read_timeout 120s;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
}
这样配置,就把所有80端口来的所有来自yapi.company.com的请求都转发到http://127.0.0.1:3000了。配置完之后使用
sudo nginx -s reload
重启nginx。打开浏览器访问,发现已经成功了。