从 0 到 1 玩一玩 yapi

178 阅读2分钟

一、检测 mongodb 环境

使用 brew 直接安装即可,然后查看一下 mongodb 的信息,方便我做服务的管理。 mongodb 最好采用 v3.x 等稳定版本

$ brew info mongodb

# 然后找到 conf 文件
# mongod --config /usr/local/etc/mongod.conf

$ cat /usr/local/etc/mongod.conf

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1

# 启动 mongod
$ mongod --dbpath=/usr/local/var/mongodb

# 启动 client
$ mongo

mongodb://127.0.0.1:27017

mongo 启动成功

二、安装 yapi

全局安装 npm install -g yapi-cli --registry registry.npm.taobao.org

这样安装完成后其实就可以启动了,但是容易遇到一个典型异常:

Error:  getaddrinfo ENOTFOUND yapi.demo.qunar.com

这个时候排查出来有 2 种可能:

  1. 检查 nodejs 版本号:nodejs 版本使用 v17 会直接连接不成功,所以最好是 v10~v14 这种使用较多的版本,我这使用 v12 版本,刚好本地有。
  2. 检查 yapi 部署版本:yapi 的版本尽量选新一点,我这里使用 1.4.2 下载失败,使用 1.10.x 成功,所以版本之间的依赖受到了 Node 的影响,尽量选择新的匹配。

最后就简单了,启动 yapi server

> http://0.0.0.0:9090
# 1. 初始化数据库
# 2. 初始化管理员账号和密码

yapi 部署初始启动

切换 1.10.2 版本后,默认配置开始部署

使用 taobao 镜像源进行下载源码

# mongo 账号初始化完成
初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"
部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 "http://127.0.0.1:3000" 访问。

这个时候查看一下部署目录,使用终端进入:

部署路径可以修改哦~

my-yapi node vendors/server/app.js
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问:
http://127.0.0.1:3000/

最后就可以访问站点啦~我们来看下效果:

yapi 控制台首页

以为这样就结束了么?我们再继续看下 yapi 生成的数据库是什么样子呢?

yapi 就算部署和安装成功了,我们来看下安装了 yapi 数据库,然后看下 user 表信息。

发现喵的还加了盐...还好记录了一下控制台,方便直接登录。 账号名:"admin@admin.com" 密码:"ymfe.org"

mongodb user table

登录后创建一个初始项目

最后我们为后面 spring 项目接入 yapi 做一些部署准备。

三、springboot 的安装

安装 sdkman

在体系下,我们还是使用更靠近的心态去使用工具圈。

# https://sdkman.io/install
$ curl -s "https://get.sdkman.io" | bash
$ source "/Users/lulin/.sdkman/bin/sdkman-init.sh"
$ sdk help

安装过程的输出还挺帅气的 =-=

安装 springboot-cli

$ sdk install springboot
Downloading: springboot 2.7.0
In progress...
Installing: springboot 2.7.0
Done installing!

Setting springboot 2.7.0 as default.

$ spring --version
Spring CLI v2.7.0

好了,准备工作先这样,但是感觉不怎么样...groovy 的例子没撒实际的作用,也不会用他编译,我们直接上 Java 走起。