Yapi部署文档

news2024/9/23 11:27:01

Yapi是高效、易用、功能强大的API管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务
官网地址:Yapi

环境:
  • l Git

  • l NodeJs(7.6+)

  • l Mongodb(2.6+)

1、 NodeJs的安装

获取资源
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
安装NodeJS
yum install -y nodejs 
查看NodeJs和Npm
node -v
npm -v

请添加图片描述

2、Git安装

yum install -y gitshell

请添加图片描述

3、MongoDB安装

配置mongodb的yum源
touch /etc/yum.repos.d/mongodb-org.repo
vi /etc/yum.repos.d/mongodb-org.repo

内容如下:

[mongodb-org]
 name=MongoDB Repository
 baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.2/x86_64/
 gpgcheck=0
 enabled=1
安装MongoDB
yum install -y mongodb-org

4、启动MongoDB

网上提到了在CentOS下SELinux会阻止mongodb的启动,需要先设置禁用。

vi /etc/selinux/config

主要是把/etc/selinux/config的SELINUX从==enforcing改成disabled==,然后重启操作系统。

systemctl start mongod

5、安装Yapi

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

6、开放端口

在启动Yapi前,首先开放9090端口和3000端口

检查9090端口是否开放
firewall-cmd --query-port=9090/tcp
永久开放9090端口
firewall-cmd --zone=public --add-port=9090/tcp --permanent
检查3000端口是否开放
firewall-cmd --query-port=3000/tcp
永久开放3000端口
firewall-cmd --zone=public --add-port=3000/tcp --permanent
启防火墙
 firewall-cmd –reload

7、启动Yapi

yapi server

请添加图片描述

然后访问http://192.168.2.170:9090/

请添加图片描述

填写公司名称后,点击”开始部署”,等待几分钟后,部署成功

请添加图片描述

进入到部署路径

node vendors/server/app.js

请添加图片描述

访问:http://192.168.2.170:3000/

请添加图片描述

使用部署成功的管理员账号密码登录

请添加图片描述

进入到Yapi的页面,便可添加项目
请添加图片描述

服务管理

shell窗口关闭后,yapi服务就会关闭,所以使用pm2进行服务管理维护

npm install pm2 -g  //安装pm2
cd  {项目目录}
pm2 start "vendors/server/app.js" --name yapi //pm2管理yapi服务
pm2 info yapi //查看服务信息
pm2 stop yapi //停止服务
pm2 restart yapi //重启服务

升级

升级项目版本是非常容易的,并且不会影响已有的项目数据,只会同步 vendors 目录下的源码文件

cd  {项目目录}
yapi ls //查看版本号列表
yapi update //更新到最新版本
yapi update -v {Version} //更新到指定版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式硬件-ARM处理器架构,CPU,SOC片上系统处理器

多进程空间内部分布图:注意:创建线程实际使用兑取空间,栈区独立 ARM处理器架构: 基于ARM920T架构的CPU:以下时哈佛结构ARM920T是ARM公司的32位RISC(精简指令集计算机)处理器内核。它具有以下特点&#xff1…

day-47 组合

思路 回溯:利用个dfs方法递归调用,每个元素有选或不选两种抉择,当选中元素个数等于k时,将链表p加入答案,当idsn且选中元素个数小于n时,直接返回 解题过程 每次选中元素调用dfs方法后记得还原 Code class…

【数据结构】顺序表和链表——顺序表(包含丰富算法题)

文章目录 1. 线性表2. 顺序表2.1 概念与结构2.2 分类2.2.1 静态顺序表2.2.2 动态顺序表 2.3 动态顺序表的实现2.4 顺序表算法题2.4.1 移除元素2.4.2 删除有序数组中的重复项2.4.3 合并两个有序数组 2.5 顺序表问题与思考 1. 线性表 线性表(linear list)…

vivado 定义时间约束

定义时间约束和 例外情况 在本实验中,您将学习两种为设计创建约束的方法。您必须使用 AMD Vivado™IDE中包含的AMD Kintex™7 CPU网表示例设计。 第一步:打开示例项目 1.打开Vivado IDE。 •在Linux上: 1.更改实验室材料的存储目录。 cd&…

HarmonyOS--后台代理提醒

一、概述 HarmonyOS提供后台代理提醒功能,在应用退居后台或退出后,计时和提醒通知功能被系统后台代理接管。后台代理提醒就是由系统后台进程代理应用的提醒功能。后台代理提醒服务通过reminderAgentManager模块提供提醒定义、创建提醒、取消提醒等能力。…

zdppy+vue3+onlyoffice文档管理系统实战 20240902 上课笔记 登录功能优化

遗留问题 1、登录以后跳转最近文档2、如果用户没有登录应该自动跳转登录页面3、如果用户的token校验失败,应该自动调整登录界面4、按回车键自动跳转登录页面 登录以后跳转最近文档 const router useRouter() router.push("/")实际代码: c…

C++篇:C向C++迈进(下)

目录 引言 缺省参数 1.缺省参数的概念 2.缺省参数的分类 2.1 全缺省 2.2 半缺省 3.注意事项 函数重载 1.函数重载的定义 2.函数重载的基本规则 3.函数重载的运用场景 引用 1.引用的概念 2.引用的主要特性 3.常引用 4.引用的使用场景 4.1 函数参数传递 4.2 函…

计算机网络-VRRP基础概念

回顾一下以前我们学习的网络通信基础,终端通过交换机可以相互进行通信,而如果是不同网段间的通信需要经过三层网关,网关进行路由寻址和转发,所以基本的网络结构就是终端--交换机--路由器网关--网络出口--Internet。 一、VRRP虚拟路…

逻辑回归算法详解

目录 原理推导 逻辑回归求解 项目实战--信用卡欺诈检测 数据分析与预处理 数据读取与分析 样本不均衡解决方案 特征标准化 下采样方案 交叉验证 模型评估方法 正则化惩罚 逻辑回归模型 参数对结果的影响 混淆矩阵 分类阈值对结果的影响 过采样方案 SMOTE数据生…

点击率预测模型Embedding层的学习和训练

导读: 本文将简要介绍推荐模型的发展历史,现状,和下一步的研究趋势。并重点介绍针对embedding数据的模型训练及优化。主要包含以下几大部分内容: CTR预测模型(CTR Models)连续值处理(Continuou…

OpenAI“草莓项目”最快今年秋季发布!苹果将于9月10号推出首款AI iPhone|AI日报

文章推荐 吴恩达辞任Landing AI CEO,专注AI投资?数学家斯蒂芬预言哲学家引领AI未来|AI日报 与人类产生情感共鸣?数字华夏推出“夏澜”人形机器人;微软Azure AI语音服务推出虚拟人形象|AI日报 今日热点 …

行程问题

某直升机原定以260公里的时速飞往目的地,因任务紧急,飞行时速提高到360公里,结果提前1小时到达,则总的航程是( )公里。 A 900 B 936【正确答案】 C 1200 D 1296 第一步,本题考察行程问题&#x…

自行车租赁管理系统设计与实现

第三章 系统分析 3.1 系统可行性分析 可行性研究(Feasibility Study)是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较&…

使用mybatis对学生管理系统的完整功能实现

一、什么是mybatis: MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Pla…

大赛题目公布,鸣志电器,对不起了

大家好,我是博主,夏目 即9/2发布组织第一届 电机电磁仿真大赛后,有很多朋友跃跃欲试,但也有不少顾虑。 跃跃欲试的原因是,对于这种新颖的活动,参与其中,也是一种乐趣,一种经验的积…

什么是I2C总线?

1.什么是I2C? 1.1 I2C的由来 在电视机内部电路中,众多功能需要用到许多集成电路IC来实现,包括主控器件微控制器和众多外围设备器件。这些器件相互之间要传递数据信息,那么就需要用导线相互连接,如此众多IC器件的互连&…

ArcGIS Pro 发布松散型切片

使用ArcGIS Pro发布松散型切片问题,有时候会出现切片方案写了松散型,但是自动切片完成后依然是紧凑型的问题,这时候可以采用手动修改然后再切片的方式。 1. 发布切片服务 选择手动切片方式 2. 手动修改服务的切片方案文件 修改cache服务…

htop的使用详解

1. htop简介: htop 是一个基于 ncurses 的跨平台进程查看器。 它与 top 类似,但允许您垂直和水平滚动,并使用指针设备(鼠标)进行交互。您可以观察系统上运行的所有进程及其命令行参数,以及以树形格式查看它…

Golang | Leetcode Golang题解之第392题判断子序列

题目&#xff1a; 题解&#xff1a; func isSubsequence(s string, t string) bool {n, m : len(s), len(t)f : make([][26]int, m 1)for i : 0; i < 26; i {f[m][i] m}for i : m - 1; i > 0; i-- {for j : 0; j < 26; j {if t[i] byte(j a) {f[i][j] i} else {…

Python | Leetcode Python题解之第392题判断子序列

题目&#xff1a; 题解&#xff1a; class Solution:def isSubsequence(self, s: str, t: str) -> bool:n, m len(s), len(t)f [[0] * 26 for _ in range(m)]f.append([m] * 26)for i in range(m - 1, -1, -1):for j in range(26):f[i][j] i if ord(t[i]) j ord(a) el…