【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.org

yapi server

方式二、命令行部署

mkdir yapi

cd yapi

git clone https://github.com/YMFE/yapi.git vendors 

# 复制完成后请修改相关配置
cp vendors/config_example.json ./config.json

cd 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 接口文档

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C/C++】字符/字符串函数(1)——由string.h提供

零.导言 什么是字符/字符串函数呢? 其实就是一类用于处理字符和字符串的函数。 而其中一部分函数包含在头文件 string.h 中,有 strlen strcpy strcat strcmp strncpy strncat strncmp strstr strtok strerror 等等 接下来我将逐个讲解这些函数。 一.str…

简单的kafkaredis学习之redis

简单的kafka&redis学习之redis 2. Redis 2.1 什么是Redis Redis是一种面向 “Key-Value” 数据类型的内存数据库,可以满足我们对海量数据的快速读写需求,Redis是一个 NoSQL 数据库,NoSQL的全称是not only sql,不仅仅是SQL&…

在 Visual Studio 中使用 Eigen 库

在 Visual Studio 中使用 Eigen 库 参考教程: 在 Visual Studio 中配置 Eigen库_vs调用eigen-CSDN博客 Eigen 是一个开源的 C 库,主要用来支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。Eigen 除了需要 C 标准库以外&am…

认证鉴权框架之—sa-token

一、概述 Satoken 是一个 Java 实现的权限认证框架,它主要用于 Web 应用程序的权限控制。Satoken 提供了丰富的功能来简化权限管理的过程,使得开发者可以更加专注于业务逻辑的开发。 二、逻辑流程 1、登录认证 (1)、创建token …

MES(Manufacturing Execution System)制造执行系统解决方案 :高效协同, 实现数字化智能工厂

文章目录 引言I 常用功能模块车间实时数据设备维修证书管理II UI设计III 术语5M1Esee also引言 MES软件即制造企业生产过程执行管理软件,是一套面向制造企业车间执行层的生产信息化管理系统。 MES 可以为企业提供包括制造数据管理、计划排程管理、生产调度管理、库存管理、质…

Qt 实战(10)模型视图 | 10.5、代理

文章目录 一、代理1、简介2、自定义代理 前言: 在Qt的模型/视图(Model/View)框架中,代理(Delegate)是一个非常重要的概念。它充当了模型和视图之间的桥梁,负责数据的显示和编辑。代理可以自定义…

“北斗+实景三维”,助力全域社会治理

在国家治理体系和治理能力现代化的大背景下,全域社会治理成为提升国家治理效能的关键。“北斗实景三维”技术组合,为全域社会治理提供了新的技术支撑和解决方案。本文将探讨这一技术如何助力全域社会治理,以及其在实际应用中的潜力和挑战。 …

mysql8.0.32升级到8.0.40

上篇8.0.32库的准备:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No suc-CSDN博客 此篇测试升级到8.0.40 MySQL :: Download MySQL Community Server rootjyc:~# mysql -u root -pabcd1234 mysql: [Warning]…

高阶数据结构--图(graph)

图(graph) 1.并查集1. 并查集原理2. 并查集实现3. 并查集应用 2.图的基本概念3. 图的存储结构3.1 邻接矩阵3.2 邻接矩阵的代码实现3.3 邻接表3.4 邻接表的代码实现 4. 图的遍历4.1 图的广度优先遍历4.2 广度优先遍历的代码 1.并查集 1. 并查集原理 在一…

go 聊天系统项目-1

1、登录界面 说明:这一节的内容采用 go mod 管理【GO111MODULE‘’】的模块,从第二节开始使用【GO111MODULE‘off’】GOPATH 管理模块。具体参见 go 包相关知识 1.1登录界面代码目录结构 代码所在目录/Users/zld/Go-project/day8/chatroom/ 1.2登录…

支持向量机背后的数学奥秘

一、基本概念与原理 1.1 支持向量机的定义 支持向量机是一种二分类模型,其核心思想是在样本空间中寻找一个超平面,将不同类别的样本分开。这个超平面被称为决策边界或分隔超平面。支持向量是距离决策边界最近的点,这些点决定了决策边界的位…

C语言指针和数组相关习题

目录 sizeof和一维int数组sizeof和一维char数组strlen()和一维char数组sizeof和字符串strlen()和字符串指针变量指向字符串字面常量易错点sizeof(a):sizeof是操作符 当心整型提升sizeof和二维数组复习一下相关知识点练习题 一个离谱的错误指针1指针2指针3指针4指针5指针6指针7指…

Centos安装ZooKeeper教程(单机版)

本章教程介绍,如何在Centos7中,安装ZooKeeper 3.9.3版本。 一、什么是ZooKeeper ? Apache ZooKeeper 是一个分布式协调服务,用于大型分布式系统中的管理和协调。它为分布式应用提供了一个高性能的通信框架,简化了开发人员在构建复杂分布式系统的任务。ZooKeeper 能够解决一…

出国工作——常用英语——网站注册

Please set your password for your new Qt Account. Password must be at least 8 characters in length. 请为您的新 Qt 账户设置密码。密码长度必须至少为 8 个字符。 Password Password strength: BadThis is similar to a commonly used password. TIP: Add another wor…

江协科技STM32学习- P25 UART串口协议

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

Servlet 3.0 新特性全解

文章目录 Servlet3.0新特性全解Servlet 3.0 新增特性Servlet3.0的注解Servlet3.0的Web模块支持servlet3.0提供的异步处理提供异步原因实现异步原理配置servlet类成为异步的servlet类具体实现异步监听器改进的ServletAPI(上传文件) Servlet3.0新特性全解 tomcat 7以上的版本都支…

mysql 通过GROUP BY 聚合并且拼接去重另个字段

我的需求: 我想知道同一个手机号出现几次,并且手机号出现在哪些地方。下面是要的效果。 源数据: CREATE TABLE bank (id bigint(20) unsigned NOT NULL AUTO_INCREMENT,user_id int(11) NOT NULL DEFAULT 0,tel varchar(255) COLLATE utf8mb4_unicode_…

新加坡托管服务器VS香港托管服务器:AI时代的选择策略

在人工智能迅速发展的今天,服务器作为数据存储与计算的核心基础设施,其性能、稳定性和地理位置对于用户体验和业务效率至关重要。对于中国用户而言,在选择服务器时,新加坡服务器和香港服务器无疑是两个极具吸引力的选项。两者同属…

Linux的硬盘管理

硬盘有价,数据无价 1. 硬盘的概念 硬盘是一种计算机的存储设备,通常是由一个或者多个磁性盘片组成。硬盘即可以安装在计算机的内部,也可以外接计算机。 保存数据 数据:操作系统,应用程序,文档多媒体文件…

震惊,盖子居然重现CSDN?

盖子奇迹般重回C站 众所周知,盖子上次发布文章是在2024年5月18号(感兴趣的可以回去看一下,链接放在下面了) 盖子的c小课堂——第二十七讲:背包变形题_恰好装满的01背包-CSDN博客https://blog.csdn.net/m0_73334782/a…