YAPI介绍及Docker Compose部署指南

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

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

在选择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-alpine

COPY repositories /etc/apk/repositories

RUN npm install -g yapi-cli --registry https://registry.npm.taobao.org

EXPOSE 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: yapi
    image: xj/yapi:2.0
    command: "yapi server"              #第一次启动使用
   #  command: "node /yapi/vendors/server/app.js"             #后面启动使用
    ports:
      - "9090:9090"
      - "3000:3000"
    restart: always
    volumes:
      - ./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并开始使用。如果您有任何疑问或需要更多指导,请随时与我们联系。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
3天前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
142 91
|
4天前
|
存储 NoSQL Redis
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
19天前
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
11天前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
71 44
|
10天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
82 42
|
2天前
|
消息中间件 Kafka Docker
docker compose 安装 kafka
通过本文的步骤,您可以快速在本地使用 Docker Compose 安装并配置 Kafka 和 Zookeeper。Docker Compose 简化了多容器应用的管理,方便快速搭建和测试分布式系统。
26 2
|
2月前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
299 78
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
85 27
|
1月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
58 23
|
23天前
|
SQL Java Maven
docker部署apollo
docker部署apollo步骤