Linux系统下基于Docker安装Yapi,并且迁移Yapi数据

news2025/7/20 21:22:29

本文主要讲四个部分:

1.什么是Yapi

2.Centos7 下基于docker安装Yapi

3.Yapi数据迁移

4.利用Nginx反向代理

什么是Yapi

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

image-20230208145718401

1.权限管理

YApi 成熟的团队管理扁平化项目权限配置满足各类企业的需求

2.可视化接口管理

基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率

3.Mock Server

易用的 Mock Server,再也不用担心 mock 数据的生成了

4.自动化测试

完善的接口自动化测试,保证数据的正确性

5.数据导入

支持导入 swagger, postman, har 数据格式,方便迁移旧项目

6.插件机制

强大的插件机制,满足各类业务需求

官方文档

http://yapi.smart-xwork.cn/

Git仓库: https://github.com/YMFE/yapi

Centos7 下基于docker安装Yapi

一、安装Docker

已安装的可忽略

yum install  docker
systemctl start docker
systemctl enable docker

二、docker启动配置Mongo

# mkdir -p /data/docker/mongo
# cd  /data/docker/mongo
# mkdir db
# vim mongo.conf
填写一下内容,保存:
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
storage:
  dbPath: /data/db
net:
  port: 27017
  bindIp: 0.0.0.0

docker启动mongo

# docker run -itd \
-p 27017:27017 \
--name yapi-mongodb \
--restart always \
-v /data/docker/mongo/db:/data/db \
-v /data/docker/mongo/mongo.conf:/data/mongo.conf \
-e TZ=Asia/Shanghai mongo:4.0.4

三、初始化 Yapi 数据库索引及管理员账号

# docker run -it --rm  \
--link yapi-mongodb:mongo  \
--entrypoint npm  \
--workdir /api/vendors  registry.cn-hangzhou.aliyuncs.com/anoy/yapi  run install-server

> yapi-vendor@1.8.5 install-server /api/vendors
>  node server/install.js
log: mongodb load success...
初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"

四、启动 Yapi 服务

# docker run -d  --name yapi  \
 --restart always \
--link yapi-mongodb:mongo  \
--workdir /api/vendors  \
-p 3000:3000  registry.cn-hangzhou.aliyuncs.com/anoy/yapi  server/app.js

访问 http://localhost:3000

登录账号: admin@admin.com
密码: ymfe.org

image-20230208152434166

至此,Yapi基于docker环境安装完成,就可以使用了

还需要把旧的服务器数据迁移到这个yapi中。

将旧的Yapi项目导入到新的Yapi中

由于旧的服务器快到期了,需要将旧的Yapi的数据导入到新的Yapi中。

登录旧的服务器

1.查看mongodb数据库

# mongo
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
yapi    0.015GB
> exit
bye

2.导出mongodb数据库

导出语法

# mongodump -h dbhost -d dbname -o dbdirectory
-h MongoDB所在服务器地址,例如本机就是127.0.0.1,还可以指定端口号,如:127.0.0.1:27017
-d 需要备份导出的数据库实例名称
-o 备份导出数据存放的地址。

例如:
mongodump -h 127.0.0.1:27017 -d yapi -o /root/

实际操作,进入到docker中,导出导入数据库。

新的和旧的服务器要可以联通。否则还是打包文件来操作。

进入docker环境中:
# docker exec -it yapi-mongodb /bin/bash

将远程的mongodb导入到新的yapi中。
mongodump -h 192.168.1.21:27017 -d yapi -o yapi192.168.1.21/

3.导入mongodb数据库

导入语法:

# mongorestore -h <hostname><:port> -d dbname <path>
path    需要导入的数据所在的位置

实际操作

如下所示:

# mongorestore -h 127.0.0.1:27017 -d yapi yapi192.168.1.21/yapi

4.验证

数据是否都导入正确。

从原来的接口数为0现在有3000多,至此迁移成功。

image-20230214193557949

Nginx反向代理

这步操作主要是用域名便于记忆,不用记 192.168.1.3:3000 的IP来访问。

server {
        listen       80;
        server_name  yapi.XXX.com;
        #root /path/;
        access_log /data/wwwroot/log/yapi.XXX.com-access.log;
        error_log off;

        location / {
                index index.php index.html;
                proxy_pass      http://192.168.1.3:3000;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }
}

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

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

相关文章

网络安全-内网DNS劫持-ettercap

网络安全-内网DNS劫持-ettercap 前言 一&#xff0c;我也是初学者记录的笔记 二&#xff0c;可能有错误的地方&#xff0c;请谨慎 三&#xff0c;欢迎各路大神指教 四&#xff0c;任何文章仅作为学习使用 五&#xff0c;学习网络安全知识请勿适用于违法行为 学习网络安全知识请…

【C++、数据结构】哈希 — 闭散列与哈希桶的模拟实现

文章目录&#x1f4d6; 前言1. STL中哈希表的两个应用⚡1.1 &#x1f31f;unordered_set1.2 &#x1f31f;unordered_map2. 常见查找的性能对比&#x1f4a5;3. 哈希表模拟实现&#x1f3c1;3.1 哈希的概念&#xff1a;3.2 哈希函数&#xff1a;3.3 哈希冲突&#xff1a;3.4 闭…

RPC概念与理解(一)

目录 1.写在前面 2. 电商系统的演变 2.1 单一应用框架 2.2 垂直应用框架 2.3 分布式应用架构(RPC) 2.4 流动计算架构(SOA) 2.5 架构演变详解 3.远程调用方式 RPC Http 总结&#xff1a;对比RPC和http的区别 4.什么是PRC 5.RPC是什么 6.RPC剖析 6.1.RPC的工作原理…

Java并发编程解析之基于JDK源码解析Java领域中ReentrantLock锁的设计思想与实现原理

一、开头 在并发编程领域&#xff0c;有两大核心问题&#xff1a;一个是互斥&#xff0c;即同一时刻只允许一个线程访问共享资源&#xff1b;另一个是同步&#xff0c;即线程之间如何通信、协作。 主要原因是&#xff0c;对于多线程实现实现并发&#xff0c;一直以来&#xff…

【蓝桥杯集训3】二分专题(3 / 5)

目录 二分模板 1460. 我在哪&#xff1f; - 二分答案 哈希表 1221. 四平方和 - 哈希表 / 二分 1、哈希表 2、二分 自定义排序 1227. 分巧克力 - 113. 特殊排序 - 二分模板 l r >> 1 —— 先 r mid 后 l mid1 —— 寻找左边界 —— 找大于某个数的最小值lr…

SRV6跨域优势

背景 运营商网络作为一张覆盖全国的网络&#xff0c;其主体分为骨干&#xff0c;省干&#xff0c;城域网层级&#xff0c;主流的管理模式为分层级管理。随着运营商网络服务的终端规模不断增长&#xff0c;不同地理位置之间网络连接的需求变得非常的普遍&#xff0c;但不同网络…

SpringMVC使用JSTL

简介 JSTL 标签是一个开放源代码的 JSP 标签库&#xff0c;是由 apache 的 jakarta 小组来维护的&#xff1b;JSTL 只能运行在支持 JSP1.2 和Servlet2.3 规范的容器上&#xff0c;在 jsp 页面中经常用到&#xff0c;能帮助我们实现一些特殊的功能&#xff0c;例如&#xff1a;…

windows-Mysql的主从数据库同步设置

复制原有的mysql修改my.ini配置文件 修改端口号修改从数据的地址和从数据库的数据存放地址安装从数据库进入从数据库的bin目录&#xff0c;打开命令窗口输入命令&#xff1a;mysqld.exe install mysql-back --defaults-file "C:\ProgramData\MySQL\MySQL Server 5.7-back\…

1、创建第一个Android项目

1.1、创建Android工程项目&#xff1a;双击打开Android Studio。在菜单栏File中new-->new project3、在界面中选择Empty Activity&#xff0c;然后选择next4、在下面界面中修改工程名称&#xff0c;工程保存路径选择java语言&#xff0c;然后点击finishAndroid studio自动为…

实现了统一消息中心的微服务基础框架 JVS,快点赞收藏

一、开源项目简介基于JVS&#xff08;基于spring cloud封装&#xff09;的基础开源框架&#xff0c;实现了基于多对多租户能力的管理系统。二、基础框架实现功能支持数据管理支持分布式定时任务支持分布式日志采集支持系统监控支持动态配置中心支持模板消息支持链路跟踪支持邮件…

jenkins部署指定任意版本和配置详细教程 jenkins 2.361版本示例

Jenkins构建CI/CD什么是CI/CD&#xff1a;持续集成/持续发布---开发(git) -->git主库-->jenkins(gitjdktomcatmaven打包测试&#xff09;-->发布到tomcat服务器。持续集成(Continuous Integration, CI): 代码合并&#xff0c;构建&#xff0c;部署&#xff0c;测试都在…

【Airplay_BCT】Bonjour 和本地链接、域名和 DNS

Bonjour 零配置网络架构支持在局域网或广域网上发布和发现基于 TCP/IP 的服务。本文档概括介绍了 Bonjour 架构&#xff0c;并简要介绍了可用的 Bonjour API。 Bonjour 是 Apple 对一套零配置网络协议的实现。 Bonjour 旨在让用户更轻松地进行网络配置。 例如&#xff0c;Bon…

ChatGPT一路狂飙,NVMe SSD能否应对性能挑战?

近日&#xff0c;ChatGPT持续火爆&#xff0c;用户在短短两个月内迅速破亿&#xff0c;大量用户涌入导致ChatGPT访问和数据规模指数级增加。与数月前发布的版本相比&#xff0c;新的ChatGPT“智能”了许多&#xff0c;不仅可以像人类一样聊天交流&#xff0c;甚至能够完成一定程…

70. with open( ) as 以自动关闭文件的方式打开文件

70. with open( ) as 以自动关闭文件的方式打开文件 文章目录70. with open( ) as 以自动关闭文件的方式打开文件1. 知识回顾1. open函数语法参考2. 准备工作3. mode模式知识回顾2. with open 语句的作用3. with open 语句语法4. with open 语句实操5. 总结1. 代码总结2. 重点知…

Pandas学习2

Pandas学习2 None 两种缺失数据&#xff1a;None、np.nan(NaN) None是python自带的&#xff0c;不能参与计算。类型是object np.nan 浮点类型&#xff0c;说明能参与计算&#xff0c;但是结果是nan pandas中的None和np.nan pandas中的None和np.nan都视为np.nan 如果列…

ArkUI新能力,助力应用开发更便捷

ArkUI是一套构建分布式应用的声明式UI开发框架。它具备简洁自然的UI信息语法、丰富的UI组件、多维的状态管理&#xff0c;以及实时界面预览等相关能力&#xff0c;帮助您提升应用开发效率&#xff0c;并能在多种设备上实现生动而流畅的用户体验。随着HarmonyOS 3.1版本的发布&a…

签收后再补录物流信息单号要如何分析

随着网络时代电商平台掘起&#xff0c;购物平台也是越来越多&#xff0c;呈现出快递也是越来越多&#xff0c;电商平台和快递两者是密不可分&#xff0c;有下单就需要快递物流&#xff0c;所以快递公司也是很重要一个环节&#xff0c;最近有朋友向咨询如何分析出比如单号过已签…

Springboot扩展点之SmartInitializingSingleton

前言这篇文章会重点分析一下SmartInitializingSingleton扩展点的功能 特性、实现方式 、工作原理。SmartInitializingSingleton扩展点内只有一个扩展方法&#xff0c;且执行时机在Spring Bean的生命周期里比较靠后&#xff0c;很重要&#xff0c;但是也很简单。功能特性1、Smar…

0基础入行Java开发—详解Java泛型之详解通配符

今天我们来继续讲解泛型中另一个非常重要的概念&#xff0c;就是那个“小问号”——通配符! 通配符概念 泛型中除了用 表示泛型外&#xff0c;还有 <?>这种形式。&#xff1f; 被称为通配符。那么引入通配符的原因又是什么呢&#xff1f;看下面这段代码&#xff1a; …

格兰杰因果检验_Python实现

原理部分 代码实现 步骤 #mermaid-svg-kEtkcqkpRzxjdoOv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kEtkcqkpRzxjdoOv .error-icon{fill:#552222;}#mermaid-svg-kEtkcqkpRzxjdoOv .error-text{fill:#552222;s…