如何使用yapi-cli部署YApi?

Node.js

1 基础知识

1.1 YApi的简介

– YApi是高效、易用、功能强大的API管理平台
– YApi旨在为开发、产品、测试人员提供更优雅的接口管理服务。
– YApi可以帮助开发者轻松创建、发布、维护API
– YApi为用户提供优秀的交互体验
– YApi开发人员只需要利用平台提供的接口数据写入工具以及简单的点击操作即可实现接口管理

1.2 YApi的特点

– 基于Json5和Mockjs定义接口返回收集的结构和文档,效率多倍提升
– 以扁平化的权限设计保证大型企业级项目管理且兼容易用性
– 类似postman的接口调试
– 自动化测试,支持对Response断言
– MockServer除支持普通随机mock外,还增加了Mock期望功能(根据设置请求过滤规则返回期望的数据)
– 支持postman、har、swagger数据导入
– 免费开源、内网部署从而避免信息泄露

1.3 环境要求

– nodejs 7.6+
– mongodb 2.6+
– git

2 最佳实践

2.1 系统配置

2.1.1 系统基本配置

OS = CentOS 8.x x86_64
IP Address = 10.168.0.27
Host Name = yapi.cmdschool.org

2.1.2 升级系统

yum update -y

2.2 准备nodejs环境

2.2.1 安装软件包

yum install -y git
yum install -y nodejs

2.2.2 配置运行用户

groupadd -g 548 nodejs
useradd -u 548 -g 548 -d /var/lib/nodejs/ nodejs

2.3 准备mongodb环境

2.3.1 安装mongodb

如何部署MongoDB数据库(YUM)?

如何部署MongoDB数据库(二进制)?

2.3.2 准备yapi所需的数据库

mongo

使用如下命令完成数据库认证,

use admin
db.auth("root","rootpwd")

使用如下命令创建应用所需的数据库权限,

use yapi
db.createUser(
     {
       user:"yapi",
       pwd:"yapipwd",
       roles:[{role:"dbOwner",db:"yapi"}]
     }
  )
quit()

2.4 配置yapi-cli部署工具

2.4.1 安装yapi-cli部署工具

npm install -g yapi-cli --registry https://registry.npm.taobao.org

2.4.2 手动测试服务运行

yapi server

以上部署工具需要使用root运行(按下【CTRL+C】退出),运行后可使用如下命令查看端口倾听,

netstat -antp | grep node

可见如下提示,

tcp6       0      0 :::9090                 :::*                    LISTEN      1066/node

2.4.3 开放工具端口

firewall-cmd --permanent --add-port 9090/tcp
firewall-cmd --reload
firewall-cmd --list-all

2.5 配置yapi

2.5.1 通过yapi-cli网络接口部署yapi

http://10.168.0.27:9090

请根据自己的实际填写并单击【部署】
如果看到如下信息,则意味着部署成功,

当前安装版本: 1.10.2
连接数据库成功! 开始下载平台文件压缩包... http://registry.npm.taobao.org/yapi-vendor/download/yapi-vendor-1.10.2.tgz
部署文件完成,正在安装依赖库...
npm WARN deprecated babel-eslint@7.2.3: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated babel@6.23.0: In 6.x, the babel package has been deprecated in favor of babel-cli. Check https://opencollective.com/babel to support the Babel maintainers
#...
初始化管理员账号成功,账号名:"will@cmdschool.org",密码:"ymfe.org"
部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3000 访问

2.5.2 设置运行目录权限

chown nodejs:nodejs -R /var/www/yapi/
chmod 775 -R /var/www/yapi/

2.5.3 手动测试运行

su - nodejs
cd /var/www/yapi/
node vendors/server/app.js

,运行后可使用如下命令查看端口倾听,

netstat -antp | grep node

可见如下提示,

#...
tcp6       0      0 :::3000                 :::*                    LISTEN      35890/node

2.5.4 开放应用端口

firewall-cmd --permanent --add-port 3000/tcp
firewall-cmd --reload
firewall-cmd --list-all

2.5.5 配置服务启动

vim /etc/systemd/system/yapi.service

加入如下脚本,

[Unit]
Description=YApi Service
After=syslog.target network.target

[Service]
Type=simple
User=nodejs
WorkingDirectory=/var/www/yapi
PermissionsStartOnly=true
ExecStart=/usr/bin/node vendors/server/app.js

[Install]
WantedBy=multi-user.target

保存配置后,你需要重载服务使配置生效,

systemctl daemon-reload

然后,请使用如下命令控制服务并设置自启动,

systemctl start yapi.service
systemctl stop yapi.service
systemctl restart yapi.service
systemctl status yapi.service
systemctl enable yapi.service

2.5.6 访问yapi服务

http://10.168.0.27:3000

2.5.7 配置LDAP登录

如果你尚未准备LDAP服务端,请根据以下文章建立LDAP服务端并配置验证的账号,

如何使用389-DS服务的Console?


然后,会到yapi服务器,修改如下配置文件,

cp /var/www/yapi/config.json /var/www/yapi/config.json.default
vim /var/www/yapi/config.json

加入如下配置,

{
   #...
   "mail": {
      #...
   },
   "ldapLogin": {
      "enable": true,
      "server": "ldap://10.168.0.155",
      "baseDn": "cn=Directory Manager",
      "bindPassword": "******",
      "searchDn": "ou=people,dc=cmdschool,dc=org",
      "searchStandard": "&(objectclass=person)(uid=%s)",
      "emailKey": "mail",
      "usernameKey": "displayName"
   }
}

配置修改完成后,你需要重启服务使配置生效,

systemctl restart yapi

2.6 命令行的接口测试方案

某种情况下,命令行更能分析接口的异常,如有需要请参阅如下章节,

如何使用curl发送请求?

参阅文档
==================
文档地址
—————–
https://hellosean1025.github.io/yapi/

gihub
——————
https://github.com/ymfe/yapi

安装方法
————-
https://hellosean1025.github.io/yapi/devops/index.html

代替方案
—————-
https://www.eolink.com/

没有评论

发表回复

Node.js
如何部署Hoppscotch?

1 基础知识 2.1 基本概念 2.1.1 Rest API – Rest API用户应 …

Node.js
如何使用yum安装nodejs?

1 理论部分 1.1 Node.js简介 – Node.js是运行在服务端的JavaSc …

Node.js
如何使用二进制包安装Node.js

1 理论部分 1.1 Node.js简介 – Node.js是运行在服务端的JavaSc …