YAPI介绍及Docker Compose部署指南

我们团队的项目最初前后端是同一个开发人员在做,因此并不存在提供详细接口文档等问题。随着项目的不断迭代,团队规模逐渐扩大,我们决定将前后端分开,专门由专业的前端和后端人员进行开发工作。然而,这样的改变也带来了一个新问题:后端需要在需求确定后向前端提供详细的接口文档,而后端开发完成后也需要进行相应的测试。

在选择API管理平台时,我们的首要标准是能够进行私有化部署,以保障数据的安全性。在经过一番比较后,我们最终选择了YAPI。今天,我将向大家介绍YAPI的相关内容,并分享如何通过Docker Compose进行部署。

yapi.jpg

YAPI简介

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

yapi-base-flow.jpg

特性

  • 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
  • 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
  • 类似 postman 的接口调试
  • 自动化测试, 支持对 Response 断言
  • MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
  • 支持 postman, har, swagger 数据导入
  • 免费开源,内网部署,信息再也不怕泄露了

Docker compose 部署

第一步:部署MongoDB数据库

yapi部署依赖MongoDB的数据库,我习惯将数据库单独部署出来,如果家人们没有部署MongoDB数据库的话可以参考我们之前的文章MongoDB 解析:灵活文档数据库与 Docker Compose 部署进行部署。

使用navicat连接数据库,使用以下命令创建数据库:

# 先use命令切换至yapi数据库。如果该库不存在,那么则会创建该数据库。
use yapi;# 创建用户,分配权限
db.createUser({user:'yapi',pwd:'xj2023',roles:[{role:'readWrite',db:'yapi'}]})

第二步:构建镜像

创建Dockerfile文件

FROM node:12-alpineCOPY repositories /etc/apk/repositoriesRUN npm install -g yapi-cli --registry https://registry.npm.taobao.orgEXPOSE 3000 9090

在Dockerfile同级目录下创建repositories文件

https://mirrors.aliyun.com/alpine/v3.6/main/https://mirrors.aliyun.com/alpine/v3.6/community/

在Dockerfile同级目录下使用如下命令构建镜像

docker build -t xj/yapi:2.0 .

_20231017202246.jpg

如此我们的镜像就打成功了

第三步:启动服务

创建docker-compose.yml文件

version: '3.7'
services:yapi:container_name: yapiimage: xj/yapi:2.0command: "yapi server"              #第一次启动使用#  command: "node /yapi/vendors/server/app.js"             #后面启动使用ports:- "9090:9090"- "3000:3000"restart: alwaysvolumes:- ./data:/yapi

在docker-compose.yml同级目录下使用如下命令启动容器

docker-compose up -d 

启动之后在浏览器中访问:http://192.168.10.105:9090/

填写邮箱及数据库信息

_20231017224416.jpg

填写好之后点击开始部署

出现如下日志,则说明部署成功了

_20231017224628.jpg

此时,我们需要先使用如下命令停止容器

docker-compose down

然后修改docker-compose.yml 文件,注释掉带有第一次启动使用注释的哪行,放开带有后面启动使用的哪行

vim docker-compose.yml

_20231017225008.jpg

保存文件后在docker-compose.yml的同级目录下使用如下命令启动容器

docker-compose up -d

到此,如果不出意味的话我们的服务就完全部署完成了,访问 就可以看到如下页面了

_20231017225132.jpg

YAPI使用

使用管理员账号密码登录,账号密码在第一次部署完成的时候会在日志中打印,密码初始为ymfe.org

登录之后可以看到有用户、系统等管理,可以创建项目,创建、发布、维护 API等功能,我们此处不在详细描述

_20231017225613.jpg

_20231017225751.jpg

我们如果想请求接口的时候和浏览器开发者工具(f12)中一样查看请求、相应等信息的话可以在谷歌浏览器中安转扩转程序cross-request,点击背景夜查看

_20231017230558.jpg

_20231017230840.jpg

总结

YAPI是一个功能强大的接口管理平台,通过其灵活的定制能力和完善的团队协作功能,能够极大地提高团队的工作效率和接口管理的便捷性。通过Docker Compose的部署方式,您可以快速搭建YAPI并开始使用。如果您有任何疑问或需要更多指导,请随时与我们联系。

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

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

相关文章

亿赛通电子文档安全管理系统 Update.jsp SQL注入

目录 0x01 漏洞介绍 0x02 影响产品 0x03 语法特征 0x04 漏洞复现页面 0x05 漏洞修复建议 0x01 漏洞介绍 亿赛通电子文档安全管理系统是国内最早基于文件过滤驱动技术的文档加解密产品之一,保护范围涵盖终端电脑(Windows、Mac、Linux系统平台&#…

工欲善其事,必先利其器,五款实用的办公软件推荐

​ 你电脑中用的最久的软件是哪些?以下是否有你曾经使用过的软件呢?工欲善其事,必先利其器,今天继续分享五款实用的办公软件。 1.屏幕调节——f.lux ​ f.lux是一款可以根据时间和地点自动调节屏幕亮度和色温的软件,…

一文搞定专属码的设计与开发

作者 | 木白 导读 本文将为您介绍百度码的译码技术,包括关键的译码流程和关键的优化手段。百度码目前已经在高考等活动中进行应用,在未来的发展中,百度码的译码技术将继续升级和完善,以满足更多场景的需求。百度码的译码技术将在现…

为修复各种问题,iOS 17.1应运而生,那么它到底解决什么问题或带来什么功能呢

iOS 17即将进行第一次重大更新,iOS 17.1的候选版本现在掌握在开发人员和测试人员手中。这通常是即将全面释放的迹象。 事实上,我们对iOS 17.1更新何时应该停止有一个很好的想法,这要归功于法国监管机构的一份声明,该声明称即将对…

深度学习模型在图像识别中的应用:CIFAR-10数据集实践与准确率分析

文章目录 CIFAR-10数据集简介数据准备数据预处理构建深度学习模型模型训练与评估准确率分析结论 🎉欢迎来到AIGC人工智能专栏~深度学习模型在图像识别中的应用:CIFAR-10数据集实践与准确率分析 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页&…

图像分块及拼接(二)python代码

图像分块及拼接 问题python 代码效果图 问题 图像分块及拼接代码中对图像分块不均匀,本文给出的代码,图像分块大小相同。改进方法:图像分块不均匀时,填充事情shape相同 python 代码 import numpy as np import cv2 as cv impor…

IPv6知识概述 - ND协议

IPv6知识概述 - ND协议 参考文章:https://blog.csdn.net/Gina_wj/article/details/106708770 IPv6基础篇(四):邻居发现协议NDP ND协议功能概述 ND(Neighbor Discovery,邻居发现)协议是IPv6的…

2023年10月中国数据库排行榜:墨天轮榜单前五开新局,金仓、亚信热度攀升

怀鸿鹄之志,展骐骥之跃。 2023年10月的 墨天轮中国数据库流行度排行 火热出炉,本月共有286个数据库参与排名。本月排行榜前十名变动较大,**华为 openGauss 重归探花之位,人大金仓 KingBase 热度上升,亚信 AntDB 进军10…

【LeetCode75】第七十四题 每日温度

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们一个数组,表示每天的温度,要我们返回一个同样长度的数组,答案里装着当前气温的下一个更高气…

大数据Hadoop之——部署hadoop+hive+Mysql环境(window11)

一、安装JDK8 【温馨提示】对应后面安装的hadoop和hive版本,这里使用jdk8,这里不要用其他jdk了,可能会出现一些其他问题。 1)JDK下载地址 Java Downloads | Oracle 按正常下载是需要先登录的,这里提供一个不用登录下载…

ES6(ECMAScript 2015)有哪些新属性,如何判断当前浏览器是否支持?

ES6(ECMAScript 2015)引入了许多新的语法和特性,以增强 JavaScript 编程语言的功能。以下是一些常见的 ES6 语法和特性以及它们的解释: let 和 const 声明: let 和 const 用于声明变量,代替了旧的 var 关键…

App出海起量难?传参安装打开获客增长新途径

近年来,在App出海潮越发热烈的背景下,如何适应海外市场并实现“用户增长”与“提高转化”,已成为出海团队需要面临的重大挑战之一。 如何在海外市场短时间内快速起量?这个问题难倒了不少出海创业者,毕竟目前互联网环境…