本地安装YAPI
项目中用到很多的RESTAPI,光靠人工管理或者普通文档肯定是不行的,翻了很多的RESTAPI管理工具,还是选择了YAPI,原因有2,一个是接口位于内网,外网网站上管理测试不到内网接口,另外一个是使用方式,YAPI里的布局,个人感觉更容易理解上手
找了太比较老的Centos7, 因为不是新的,所以安装过程中,需要反复调整版本,包括node的版本,和YAPI的版本,版本高了缺组件,要额外安装,版本低了有事后不适配,所以装了四五次不同的版本来适配,最后成功了
下面是要用到的网址
YApi - 接口管理平台
安装手册
使用手册
代码库
1、安装
1.1 安装的前提条件
- nodejs(7.6+)
- mongodb(2.6+)
Mongodb没啥讲的,node7.6太低了,node不同版本在安装YAPI时会有不同的反应,常见的是缺包,反复几次,后来装了V12.12.12,太高了不行,太低了也不行,YAPI装了1.10.2版本
不同node的下载地址
Node下载:https://nodejs.org/dist/v12.22.12/
node安装方法
下载node-v12.22.12-linux-x64.tar.gz
tar -zxvf node-v12.22.12-linux-x64.tar.gz
修改/etc/profile,最后增加以下两句
export NODEJS_HOME=/usr/local/nodejs
export PATH=$PATH:$NODEJS_HOME/bin
source /etc/profile,让其生效
然后试一下,是不是好了
node -v
如果看到版本号就生效了。
1.2 YAPI安装
- 方式一. 可视化部署[推荐]
执行 yapi server 启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱,默认密码(ymfe.org) 登录系统(默认密码可在个人中心修改)。
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
执行完后会给你个网址,上去后,可以在网址里填写信息,然后就让网站触发安装

注意:淘宝的这个仓库过期了,会报错,要改到新仓库https://registry.npmmirror.com
npm install --production --registry https://registry.npmmirror.com
因为我们与github代码库网络不通,因为是外国,网络不联通,所以只能采用方式二
- 方式二. 命令行部署
如果 github 压缩文件无法下载,或需要部署到一些特殊的服务器,可尝试此方法
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录(clone 整个仓库大概 140+ M,可以通过 `git clone --depth=1 https://github.com/YMFE/yapi.git vendors` 命令减少,大概 10+ M)
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npmmirror.com
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
官网的这些文字让我有歧义,所以又绕了好几圈,比如从浏览器上的github上下载zip压缩文件,下了几次只有17M,按照上述要有至少100M,所以后来本地用git命令下到本地,才会有两百多兆,加了–depth=1 又是一百多M,我是用两百多M版本去安装的
按照上面的命令严格执行,不能错一点儿,比如config.json,竟然放在项目外面,反正就是一个字都不要错的执行
同样是淘宝仓库过期问题,要改成https://registry.npmmirror.com
归纳总结就是,不同版本切换试,最后挑个不报错的!
2、运行
node server/app.js &
装完了会命令行里显示用户名,密码
在浏览器上访问,输入用户名密码,就可以用了。
相关文章:
本地安装YAPI
项目中用到很多的RESTAPI,光靠人工管理或者普通文档肯定是不行的,翻了很多的RESTAPI管理工具,还是选择了YAPI,原因有2,一个是接口位于内网,外网网站上管理测试不到内网接口,另外一个是使用方式&…...
pytest日志总结
pytest日志分为两类: 一、终端(控制台)打印的日志 1、指定-s,脚本中print打印出的信息会显示在终端; 2、pytest打印的summary信息,这部分是pytest 的默认输出(例如测试结果PASSED, FAILED, S…...
day16
目录 1 联合体的定义和使用 2 联合体的内存布局 3 联合体的应用 1 联合体的定义和使用 #include <iostream>using namespace std;struct DataS {int i; double d; char s[10]; };/*联合体 所有成员共享同一段内存 修改一个成员会影响其他成员 { */ union DataU {int…...
医工交叉入门书籍分享:Transformer模型在机器学习领域的应用|个人观点·24-11-22
小罗碎碎念 今天给大家推荐一本入门书籍。 这本书由Uday Kamath、Kenneth L. Graham和Wael Emara撰写,深入探讨了Transformer模型在机器学习领域的应用,特别是自然语言处理(NLP)。 原文pdf已经上传至知识星球的【入门书籍】专栏&…...
【读书】复杂性意义结构框架——Cynefin框架
Cynefin框架 《代码大全》的作者史蒂夫麦克康奈尔(Steve McConnell)在《卓有成效的敏捷》这本书里,探讨了用于理解不确定性和复杂性的Cynefin框架。 Cynefin框架是戴维斯诺登(David Snowden)20世纪90年代的在IBM时创…...
Python模块、迭代器与正则表达式day10
1、Python模块 1.1模块的简介 在编写代码的时候,创建的.py文件就被称为一个模块 1.2模块的使用 想要在a文件里使用b文件的时候,只要在a文件中使用关键字import导入即可 1.2.2 from ...import...语句 导入模块可以使用import,如果只导入模…...
Hutool工具类生成二维码
1、引入依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.3</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutoo…...
wpf 事件转命令的方式
1,方式1 <StackPanel Background"Transparent"><StackPanel.InputBindings><KeyBinding Command"{Binding ChangeColorCommand}"CommandParameter"{Binding ElementNamecolorPicker, PathSelectedItem}"Key"{Bi…...
第二十八章 TCP 客户端 服务器通信 - JOB命令示例
文章目录 第二十八章 TCP 客户端 服务器通信 - JOB命令示例JOB命令示例 第二十八章 TCP 客户端 服务器通信 - JOB命令示例 JOB命令示例 以下示例显示了一个非常简单的并发服务器,只要它检测到来自客户端的连接,就会产生一个子作业。 JOB指定一个并发服…...
「Mac玩转仓颉内测版19」PTA刷题篇10 - L1-010 比较大小
本篇将继续讲解PTA平台上的题目 L1-010 比较大小,通过对三个整数的排序,进一步提升Cangjie编程语言的数组操作与逻辑处理能力。 关键词 PTA刷题数字排序条件判断Cangjie语言 一、L1-010 比较大小 题目描述:给定3个整数,要求将它…...
C++趣味编程玩转物联网:用树莓派Pico实现一位数码管动态显示
七段数码管是一种经典的电子显示器件,广泛应用于数字时钟、电子仪表等设备。本文将通过树莓派Pico开发板,介绍如何用C代码控制一位七段数码管显示数字。作为一个嵌入式开发项目,这不仅是初学者理解数码管工作原理的好机会,也是C开…...
SPA 单页面深入解读:优劣势剖析及实现方法
SPA(Single Page Application)单页面应用 什么是 SPA? SPA(Single Page Application,单页面应用)是一种 Web 应用程序,它通过 JavaScript 动态更新单一页面上的内容,而不是像传统的多页面应用程序那样每次用户与应用交互时都请求一个新的 HTML 页面。通过使用 AJAX 请…...
机器学习系列----关联分析
目录 1. 关联分析的基本概念 1.1定义 1.2常用算法 2.Apriori 算法的实现 2.1 工作原理 2.2 算法步骤 2.3 优缺点 2.4 时间复杂度 2.5实际运用----市场购物篮分析 3. FP-Growth 算法 3.1 工作原理 3.2 算法步骤 3.3 优缺点 3.4 时间复杂度 3.5实际运用——网页点…...
json数据四大加载方式
效果: 一、使用 import 静态加载 JSON 原理 使用 ES 模块的 import 语法直接引入 JSON 文件。Webpack/Vite 等构建工具会将 JSON 文件解析成 JavaScript 对象。 优点 简单直接,适合静态数据。不需要额外的网络请求。数据会随着打包文件一起部署。 缺点 J…...
JavaScript 中的数组(Array)对象的内置方法
JavaScript 中的数组(Array)对象提供了许多内置方法,用于对数组进行创建、操作、遍历和搜索等操作。以下是一些常用的数组方法及其简要说明: 创建和初始化数组 Array(): 创建一个新的空数组,或者根据提供的参数创建一…...
网络安全之国际主流网络安全架构模型
目前,国际主流的网络安全架构模型主要有: ● 信息技术咨询公司Gartner的ASA(Adaptive Security Architecture自适应安全架构) ● 美国政府资助的非营利研究机构MITRE的ATT&CK(Adversarial Tactics Techniques &…...
电子应用设计方案-16:智能闹钟系统方案设计
智能闹钟系统方案设计 一、系统概述 本智能闹钟系统旨在为用户提供更加个性化、智能化和便捷的闹钟服务,帮助用户更有效地管理时间和起床。 二、系统组成 1. 微控制器 - 选用低功耗、高性能的微控制器,如 STM32 系列,负责整个系统的控制和数据…...
【FRP 内网穿透 从0到1 那些注意事项】
【摘要】 最近跟第三方团队调试问题,遇到一个比较烦的操作。就是,你必须要发个版到公网环境,他们才能链接到你的接口地址,才能进行调试。按理说,也没啥,就是费点时间。但是,在调试的时候&#…...
力扣 LRU缓存-146
LRU缓存-146 /* 定义双向链表节点,用于存储缓存中的每个键值对。 成员变量:key和value存储键值对。preb和next指向前一个和后一个节点,形成双向链表。 构造函数:默认构造函数:初始化空节点。参数化构造函数࿱…...
Elasticsearch简介与实操
Elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎。以下是对Elasticsearch的详细介绍: 一、基本概述 Elasticsearch是Elastic Stack(以前称为ELK Stack)的核心组件,Logstash和Beats有助于收集、聚合和丰富数据并将…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
