【YApi】接口管理平台

一、简介

YApi 是一个用于前后端开发团队协作的 API 管理平台,帮助团队更加高效地进行 API 接口的设计、测试、文档管理和版本控制等工作。

YApi 主要功能:

  • API 设计和管理:提供 API 设计和文档生成工具,使开发者能够轻松创建、修改和维护 API 接口。
  • Mock 支持:YApi 支持生成 Mock 服务,可以在后端接口尚未完成的情况下,前端开发人员也能基于模拟的数据进行开发工作。
  • 接口调试:提供内置的调试工具,方便开发者直接在平台上测试 API,查看请求和响应数据。
  • 版本控制:YApi 支持 API 的版本管理,有助于维护不同版本的 API,方便回滚或维护长期支持的版本。
  • 团队协作:通过权限管理,可以实现团队成员之间的协作,比如 API 的共享、评论等功能,提高团队沟通效率。
  • 插件扩展:YApi 支持插件系统,可以根据需要安装不同的插件来增强功能,比如导出导入、环境切换等
  • 自动化测试:提供接口自动化测试功能,帮助团队在发布前发现和解决问题。
  • 多项目支持:支持管理多个项目,适合大型团队和复杂项目的需求。

二、部署

1、环境要求

  • nodejs(7.6+)
  • mongodb(2.6+)

2、部署

方式一、可视化部署[推荐]

执行 yapi server 启动可视化部署程序,输入相应的配置和点击开始部署,就能完成整个网站的部署。部署完成之后,可按照提示信息,执行 node/{网站路径/server/app.js} 启动服务器。在浏览器打开指定url, 点击登录输入您刚才设置的管理员邮箱,默认密码(ymfe.org) 登录系统(默认密码可在个人中心修改)。

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

方式二、命令行部署

mkdir yapicd yapigit clone https://github.com/YMFE/yapi.git vendors # 复制完成后请修改相关配置
cp vendors/config_example.json ./config.jsoncd vendors# 安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
npm install --production --registry https://registry.npm.taobao.org
npm run install-server # 启动服务器,访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
node server/app.js 

安装后的目录结构如下:

|-- config.json
|-- init.lock
|-- log
`-- vendors|-- CHANGELOG.md|-- LICENSE|-- README.md|-- client|-- common|-- config_example.json|-- doc|-- exts|-- nodemon.json|-- npm-debug.log|-- package.json|-- plugin.json|-- server|-- static|-- test|-- webpack.alias.js|-- yapi-base-flow.jpg|-- ydocfile.js`-- ykit.config.js

3、升级

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

# 
cd  {项目目录}# 查看版本号列表
yapi ls # 查看版本号列表
yapi update # 升级到指定版本
yapi update -v v1.1.0 

4、配置邮箱

打开项目目录 config.json 文件,新增 mail 配置, 替换默认的邮箱配置

{"port": "*****","adminAccount": "********","db": {...},"mail": {"enable": true,"host": "smtp.163.com",    //邮箱服务器"port": 465,               //端口"from": "***@163.com",     //发送人邮箱"auth": {"user": "***@163.com", //邮箱服务器账号"pass": "*****"        //邮箱服务器密码}}
}

如何申请STMP服务器账号和密码可以参考下面的教程:如何开通电子邮箱的SMTP功能

5、配置LDAP登录

打开项目目录 config.json 文件,添加如下字段:

{"port": "*****","adminAccount": "********","db": {...},"mail": {...},"ldapLogin": {"enable": true,"server": "ldap://l-ldapt1.com","baseDn": "CN=Admin,CN=Users,DC=test,DC=com","bindPassword": "password123","searchDn": "OU=UserContainer,DC=test,DC=com","searchStandard": "mail",    // 自定义格式: "searchStandard": "&(objectClass=user)(cn=%s)""emailPostfix": "@163.com","emailKey": "mail","usernameKey": "name"}
}

这里面的配置项含义如下:

  • enable 表示是否配置 LDAP 登录,true(支持 LDAP登录 )/false(不支持LDAP登录);
  • server LDAP 服务器地址,前面需要加上 ldap:// 前缀,也可以是 ldaps:// 表示是通过 SSL 连接;
  • baseDn LDAP 服务器的登录用户名,必须是从根结点到用户节点的全路径(非必须);
  • bindPassword 登录该 LDAP 服务器的密码(非必须);
  • searchDn 查询用户数据的路径,类似数据库中的一张表的地址,注意这里也必须是全路径;
  • searchStandard 查询条件,这里是 mail 表示查询用户信息是通过邮箱信息来查询的。注意,该字段信息与LDAP数据库存储数据的字段相对应,如果如果存储用户邮箱信息的字段是 email, 这里就需要修改成 email.(1.3.18+支持)自定义filter表达式,基本形式为:&(objectClass=user)(cn=%s), 其中%s会被username替换
  • emailPostfix 登陆邮箱后缀(非必须)
  • emailKey: ldap数据库存放邮箱信息的字段(v1.3.21 新增 非必须)
  • usernameKey: ldap数据库存放用户名信息的字段(v1.3.21 新增 非必须)

重启服务器后,可以在登录页看到如下画面,说明 ladp 配置成功

在这里插入图片描述

6、禁止注册

在 config.json 添加 closeRegister:true 配置项,就可以禁止用户注册 yapi 平台,修改完成后,请重启 yapi 服务器。

{"port": "*****","closeRegister":true
}

7、版本通知

(v1.3.19+ 增加)在 config.json 添加 “versionNotify”: true 配置项,就可以开启版本通知功能,默认为 false,修改完成后,请重启 yapi 服务器。

{"port": "******","adminAccount": "*****","versionNotify": true
}

如何配置mongodb集群

请升级到 yapi >= 1.4.0以上版本,然后在 config.json db项,配置 connectString:

{"port": "***","db": {"connectString": "mongodb://127.0.0.100:8418,127.0.0.101:8418,127.0.0.102:8418/yapidb?slaveOk=true","user": "******","pass": "******"},
}

详细配置参考: wiki

十、参考资料

  • YApi 教程
  • YApi 内网部署
  • YApi 接口文档

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

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

相关文章

ctfshow(159->162)--文件上传漏洞

Web159 考点: 前端校验MIME验证黑名单 思路: 上传.user.ini文件: 文件内容auto_prepend_fileshell.png 由于网页存在前端过滤,只允许上传.png文件,所以我们将文件名修改为.user.ini.png上传,然后抓包删除.png后缀名…

使用pytest单元测试框架执行单元测试

Pytest 是一个功能强大且灵活的 Python 单元测试框架,它使编写、组织和运行测试变得更加简单。以下是 Pytest 的一些主要特点和优点: 简单易用:Pytest 提供了简洁而直观的语法,使编写测试用例变得非常容易。它支持使用 assert 语…

可视化平台FineBI的安装及简单使用

本章知识简介 主线B: 安装FineBI 主线C: FineBI的使用. 本章目标: 1:了解FineBI的安装; [了解]"傻瓜式"安装 2:知道FineBI的使用流程; [了解]a.连接数据b.创建组件与分析数据c.可视化组件d.添加交互效果e.制作仪表板 3:知道如何连接数据; [重点]添加业…

推荐一款优秀的pdf编辑器:Ashampoo PDF Pro

Ashampoo PDF Pro是管理和编辑 PDF 文档的完整解决方案。程序拥有您创建、转换、编辑和保护文档所需的一切功能。根据需要可以创建特定大小的文档,跨设备可读,还可以保护文件。现在您还能像编辑Word文档一样编辑PDF! 软件特点 轻松处理文字 如 Microso…

云原生后端开发教程

云原生后端开发教程 引言 随着云计算的普及,云原生架构逐渐成为现代软件开发的主流。云原生不仅仅是将应用部署到云上,而是一种构建和运行应用的方式,充分利用云计算的弹性和灵活性。本文将深入探讨云原生后端开发的核心概念、工具和实践&a…

XQT_UI 组件|02| 按钮 XPushButton

XPushButton 使用文档 简介 XPushButton 是一个自定义的按钮类,基于 Qt 框架构建,提供了丰富的样式和功能选项。它允许开发者轻松创建具有不同外观和行为的按钮,以满足用户界面的需求。 特性 颜色设置:支持多种颜色选择。样式设…

Linux线程安全(二)条件变量实现线程同步

目录 条件变量 条件变量初始化和唤醒 键盘触发条件变量唤醒线程demo 条件变量的等待 条件变量定时等待demo 条线变量实现多线程间的同步 条件变量 条件变量是为了控制多个线程的同步工作而设计的 比如说一个系统中有多个线程的存在但有且仅有一个线程在工作&#xff0c…

python的lambda实用技巧

lambda表达式 lambda表达式是一种简化的函数表现形式,也叫匿名函数,可以存在函数名也可以不存在。 使用一行代码就可以表示一个函数: # 格式 lambda arg[参数] : exp[表现形式] # 无参写法 lambda : "hello" # 一般写法 lambda …

复现第一周24

1.[SWPUCTF 2021 新生赛]gift_F12 1)打开题目 2)看源码 3)直接ctrl+f搜索flag 2.[SWPUCTF 2021 新生赛]nc签到 1)开题 2)下载附件用记事本打开 3)打开kali使用nc连接代码 输入l\s命令绕过黑名…

开发流程初学者指南——需求分析

目录 从零开始理解需求分析什么是需求分析?需求分析的目标需求分析的基本原则需求分析的各个阶段需求分析的常用方法和工具编写需求文档总结 从零开始理解需求分析 需求分析是软件开发过程中不可或缺的一环,它帮助我们明确用户的需求,确保最…

大模型,多模态大模型面试【LoRA,分类,动静态数据类型,DDPM,ControlNet,IP-Adapter, Stable Diffusion】

大模型,多模态大模型面试【LoRA,分类,动静态数据类型,DDPM,ControlNet,IP-Adapter, Stable Diffusion】 问题一:LoRA是用在节省资源的场景下,那么LoRA具体是节省了内存带宽还是显存呢…

数据结构之链式结构二叉树的实现(进阶版)

本篇文章主要讲解链式二叉树的层序遍历以及判断是否为一棵完全二叉树 二者将会用到之前学过的队列知识,是将队列和二叉树的整合 一、如何将之前已经写好的文件加入当前的编译界面 如图所示,打开我们需要加入文件所在的文件夹,找到我们要加…

StructRAG简介

StructRAG是一种新型的框架,旨在提升大型语言模型(LLMs)在知识密集型推理任务中的性能。它通过推理时的混合信息结构化机制,根据任务需求以最合适的格式构建和利用结构化知识。 以下是StructRAG的核心组成部分和工作流程&#xff…

Windows Server NTFS磁盘变RAM的处理过程

问题描述 客户服务器的磁盘数据爆满,需要将磁盘进行扩容,因为是虚拟机所以先在虚拟化平台上将原来的磁盘空间改大,再进入系统,在磁盘管理器上将需要扩容的磁盘进行扩展。扩展完后系统报文件系统有问题,扩容的磁盘容量…

如何让反向代购客户享受丝滑般的下单之旅?

想象一下,一键下单,轻松购物,仿佛穿越时空的魔法,让中国好货瞬间触手可及!从made in china的美妆神器到潮流服饰,从尖端数码产品到温馨家居用品,从令人垂涎的美食到贴心的母婴用品,这…

解决Selenium的3大痛点!这款工具让你的自动化测试效率翻倍!

相信使用过Selenium WebDriver的小伙伴对其最大的诟病有3点,一是浏览器的driver和版本对应问题,第二是Selenium的执行速度,最后一个槽点是对页面元素文本值的断言非常不便。 在我们长期维护大量UI自动化测试用例的过程中这些痛点会让我们耗费…

5G基础知识

什么是 FDD 频分双工(Frequency Division Duplexing),理解起来很简单,就是把上行和下行业务隔离在两个频段,互不干扰。 而 TDD 时分双工(Time-Division Duplexing),是指上行下业务完…

使用 Elastic Observability 监控 dbt 管道

作者:来自 Elastic Almudena Sanz Oliv•Tamara Dancheva 了解如何使用 Elastic 设置 dbt 监控系统,该系统可主动发出数据处理成本峰值、每张表的行数异常以及数据质量测试失败的警报。 在 Elastic 可观察性组织内的数据分析团队中,我们使用 …

网站攻击,XSS攻击的类型

XSS(跨站脚本)攻击是一种网络安全攻击方式,攻击者通过在网站页面中注入恶意脚本,使脚本在其他用户的浏览器中执行,从而窃取用户信息、篡改页面内容或操控用户账户。这类攻击通常利用网站对输入数据的过滤不严格&#x…