一、为什么用yapi

  • yapi基于文档注释生成,没有代码的入侵。
  • 同一个工程的接口文档可以导出多个项目中,分权限查看。
  • 可以本地化部署,统一的接口文档,支持其他的文档接入。
  • 有idea插件支持,自动导出。

二、安装部署

  1. 安装

    这里只是记录个人操作过程,详情可看官网,连接在这里

    注意:要先配置好再启动,启动后超管默认的密码在启动日志里面。配置文档/data/yapi/vendors/config.json参考以下:
{
"port": "16888",
"adminAccount": "xxx@xx.com",
"closeRegister":true,
"timeout":120000,
"db": {
"servername": "127.*.*.*",
"DATABASE": "yapi",
"port": 1666,
"user": "yapi111",
"pass": "yapi111",
"authSource": ""
},
"mail": {
"enable": false,
"host": "smtp.163.com",
"port": 465,
"from": "***@163.com",
"auth": {
"user": "***@163.com",
"pass": "*****"
}
}
}

部署过程如下:

mkdir /data/yapi
cd /data/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.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
  1. 后台运行

    目前只做了nohup启动,后期可做成服务,加入到系统自启动中。
cd /data/yapi/vendors
nohup node server/app.js > runoob.log 2>&1 &
  1. 账号添加

    方式一:开放首页注册功能,默认是开启的。

    方式二:关闭注册功能,从数据中添加。可通过配置文件修改"closeRegister":true关闭注册功能,通过以下代码实现添加。
#角色类型,目前了解到两种,其他以后补充
guest #访客
admin #超级管理员 #获取用户
db.getCollection("user").find({}) #修改用户角色
db.user.update({"_id":2}, {$set: {"role":"admin"}});
db.user.update({"_id":20}, {$set: {"role":"guest"}}); #添加用户
db.user.insert({
"_id" : NumberInt(22),
"study" : true,
"type" : "site",
"username" : "test",
"password" : "b24bfd3584d83d82192239ace3bef9b7489136ad", #12345678
"email" : "test@qq.com",
"passsalt" : "j9bklcsuq6",
"role" : "guest",
"add_time" : NumberInt(new Date().getTime() /1000),
"up_time" : NumberInt(new Date().getTime() /1000),
"__v" : NumberInt(0)
});

三、idea中使用。

我使用的插件是EasyYapi,这里就不详细介绍插件的使用了。如果我们要个性话的配置文档的输出,可以在工程根目录加上文件.easy.api.config,在文件中就可以个性话定制输出了,eg: field.ignore=#ignore

以下主要记录下项目运用中的主要关注点:

  1. 使用@module app,可以很方便的将文档输出到指定的项目。
/**
* 首页接口
*
* @module app
* @Author xxx
* @Date 2022/12/6 11:26
* @description
*/
  1. 使用@ignore,可以忽略不输出到文档中。
    /**
* 条件转换
*
* @ignore
*/
String transform;
  1. 很多时候接口都是需要登录设置token的,方便后续的接口调用。



    代码如下:
context.requestHeader.Authorization = storage.getItem('token');

if (context.responseData && context.responseData.data && context.responseData.data.token) {
storage.setItem("token", context.responseData.data.token)
}

记一次yapi部署过程的更多相关文章

  1. 记一次sentry部署过程

    本文记录下部署sentry和其中遇到的问题 Sentry 是一款基于 Django实现的错误日志收集和聚合的平台,它是 Python 实现的,但是其日志监控功能却不局限于python,对诸如 Node ...

  2. Tomcat_记一次tomcatwar包应用简单部署过程

    记一次tomcat war包应用简单部署过程 by:授客 QQ:1033553122 1.  实践环境 Linux apache-tomcat-7.0.73 2.  实践步骤 # 解压tomcat压缩 ...

  3. 记一次OutOfMemory定位过程-续

    在前文<记一次OutOfMemory定位过程>完成时最终也没有定位到ECS 中JVM Heap size无法控制的原因,今天再次尝试终于有了一些线索,翻查了ECS的部署脚本发现了memor ...

  4. hudson部署过程

    hudson部署过程: java安装 http://developer.51cto.com/art/201504/470683.htm tomcat安装 http://blog.csdn.net/hu ...

  5. SCCM 2012 R2安装部署过程和问题(三)

    上篇 SCCM 2012 R2安装部署过程和问题(二) 个人认为对于使用SCCM 2012的最重要的经验是耐心. SCCM采用分布式部署的架构,不同的站点角色可以部署在不同的服务器上,站点角色之间的通 ...

  6. SCCM 2012 R2安装部署过程和问题(二)

    上篇:SCCM 2012 R2安装部署过程和问题(一) 在上篇我们已经完成了SCCM 2012 R2安装前的准备,其中有许多细节,关于数据库的准备和权限的设置是需要特别注意的.那么接下来我们开始安装S ...

  7. SCCM 2012 R2安装部署过程和问题(一)

    在进行Windows Server 2012 R2虚拟化测试前,由于需要安装,部署和管理很多的服务器,自然会想到该如何提高效率和有效的管理.在Windows Server 2008的时代微软已经提供称 ...

  8. BeX5平台简明部署过程

    http://wex5.com/cn/concise-deployment/ BeX5平台简明部署过程 该文章主要介绍BeX5平台开发完成后,资源部署至正式环境的过程. 一. 获取BeX5企业快速开发 ...

  9. 淘宝分布式 key/value 存储引擎Tair安装部署过程及Javaclient測试一例

    文件夹 1. 简单介绍 2. 安装步骤及问题小记 3. 部署配置 4. Javaclient測试 5. 參考资料 声明 1. 以下的安装部署基于Linux系统环境:centos 6(64位),其他Li ...

  10. windows server 2008 R2 Enterprise 间实时同步之FreeFileSync 部署过程

    WindowsServer间实时同步之FreeFileSync 部署过程 1. 实验主机信息 IP 操作系统 源目录 目标目录 10.155.0.80 Windows Server 2008 R2 D ...

随机推荐

  1. 假设业务需要,在页面一屏中一次性展示大量图片(100张),导致img组件同时发起大量的请求,导致浏览器性能被消耗殆尽,页面卡死。怎么优化?

    1.所有图片先提供占位图2.懒加载思想3.使用队列的方式4.通过信号量的机制,结合队列.例如设置可用资源数为10,则保证同一时刻,只有10张图片正在请求,其它图片处于loading状态,任意图片请求完 ...

  2. fabric学习笔记2

    fabric学习笔记2 20201303张奕博 2023.1.10 Fabric云服务器搭建 参考视频:视频链接:https://www.bilibili.com/video/BV1gV4y1M7q3 ...

  3. JAVA XML转对象

    最近遇到XML转对象进行业务操作的问题 这是我需要解析的XML 1,建XML对应自己需要参数的Bean.有的很长很乱,没必要全部建,只建自己需要的就行了 import lombok.Data; imp ...

  4. t:datagrid 行编辑 类型备份

    如编辑文本类型: <t:dgCol extendParams="editor:'text'" /> 如编辑数值类型: <t:dgCol extendParams= ...

  5. NTP时钟服务器(时间同步服务器)在大数据时代的重要性

    NTP时钟服务器(时间同步服务器)在大数据时代的重要性 NTP时钟服务器(时间同步服务器)在大数据时代的重要性 技术交流:岳峰 15901092122 bjhrkc@126.com    大数据时代众 ...

  6. sync.WaitGroup

    WaitGropu使用注意 作groutine参数时传指针 type WaitGroup struct { noCopy noCopy // 64-bit value: high 32 bits ar ...

  7. Unity 简易聊天室(基于TCP)(1)

    为了准备毕业设计,学习了服务器与客户端之间传输的一些简单的知识,并跟着网络上的教程制作了一个简易的Unity聊天室 服务器:用C# .Net Framework写的 结构分为:main(主函数).Se ...

  8. HTTP 协议(超文本传输协议)

    一.HTTP 协议(超文本传输协议) http 协议 版本 1.1 http由来 1960年 http通讯 http原理 URL和URI 区别 Request 请求报文 Response 响应报文 H ...

  9. 用python遍历一个图片文件夹,并输出所有路径到一个 txt 文件

    1 #coding:utf8 2 import os 3 import sys 4 def listfiles(rootDir, txtfile, label=0): 5 ftxtfile = ope ...

  10. ASCII,unicode与utf-8的区别

    ASCII,unicode与utf-8的区别: ASCII码只有127个字母被编到计算机中,无法处理中文,ASCII 编码是 1 个字节 unicode是为了解决因各国标准不同而产生乱码的问题.uni ...