laravel 集成采集_在 Laravel 项目中集成 Swagger 扩展包为 Laravel API 生成接口文档并对接口进行测试...

本文介绍了如何在 Laravel 项目中使用 L5 Swagger 扩展包集成 Swagger,为 Laravel API 生成接口文档并进行测试。通过 Swagger 的注解功能,不仅可以轻松创建 API 文档,还能在 Swagger UI 中进行接口测试。详细步骤包括安装扩展包、配置、添加注解以及生成和查看 API 文档。
摘要由CSDN通过智能技术生成

在 Laravel 项目中集成 Swagger 扩展包为 Laravel API 生成接口文档并对接口进行测试

由 学院君 创建于1年前, 最后更新于 1年前

版本号 #1

除了上篇介绍的 API 文档生成器扩展包之外,我们还可以基于著名的 Swagger 在 Laravel 项目中为 API 接口生成文档。

Swagger 是一个开源的、用于简化 API 开发的工具集,这些工具集涵盖了 API 开发的整个生命周期,从设计到文档、从测试到部署。

Swagger vs OpenAPI

在介绍基于 Swagger 工具集生成 API 文档之前,我们有必要先了解下 Swagger 与 OpenAPI 的区别,一句话来概括,就是 OpenAPI 是规范,而 Swagger 是实现这些规范的工具集。

最早,OpenAPI 规范和 Swagger 工具集都属于 Swagger 项目,Swagger 在 2010 年诞生之际,是一个简单的、用于设计 RESTful API 的开源规范,然后为了更好的实现以及可视化规范中定义的 API,又诞生了 Swagger UI、Swagger Editor、Swagger Codegen 等开源工具,随着包含规范和这些开源工具的 Swagger 项目的流行,逐渐创建起了一个庞大的、社区驱动的工具生态系统。

2015 年,Swagger 项目被 SmartBear Software 收购,Swagger 规范被捐赠给 Linux 基金会并被重命名为 OpenAPI 规范(简称 OAS),正式用于标准化 REST API 的描述,同时创建 OpenAPI Initiative 组织以便以开放透明的方式来指导 OpenAPI 的开发(目前该组织包括微软、Google、IBM、以及 SmartBear Software 等30多个成员)。这样一来,Swagger (剥离了规范的 Swagger 工具集)也顺理成章成为了可以在 API 整个开发周期充分 OAS 功能的最流行的工具集。

目前 Swagger 提供的工具集包括以下这些:

Swagger Editor:Swagger 编辑器让你可以通过 YAML 格式在浏览器中编辑遵循 OpenAPI 规范的 API 文档并实时预览;

Swagger UI:Swagger UI 是一个 HTML、CSS 和 JavaScript 资源集合,可用于动态生成符合 OpenAPI 规范的 API 文档;

Swagger Codegen:允许在给定符合 OAS 的 API 情况下生成 API SDK、服务器存根以及对应文档;

Swagger Parser:Java 语言中解析 OpenAPI 定义的独立库;

Swagger Core:用于创建、消费、处理 OpenAPI 定义的 Java 相关库;

Swagger Inspector (免费):用于验证 API & 通过已存在 API 生成 OpenAPI 定义的 API 测试工具;

SwaggerHub(包含免费和商业版本):用于团队处理 OpenAPI 的 API 设计和文档工具。

Swagger 工具集只是由 OpenAPI 规范原先的创建者开发的工具集,但是并不是唯一实现 OpenAPI 的工具集,还有很多其他的支持该规范的 API 设计、文档、测试、管理、监控实现方案(主要是 OpenAPI 2.0 及上版本),你可以在这里找到它们:OpenAPI 规范实现方案。

注:OpenAPI 3.0 版本是 Swagger API 规范捐赠给 OpenAPI Initiative 后官方发布的首个版本。后面学院君的介绍和使用也是基于这个最新版本。

基于 Swagger 扩展包生成 API 文档

在 PHP 中,我们可以基于 swagger-php 扩展包通过 doctrine 注解为 RESTful API 生成 OpenAPI 文档,当然,在 Laravel 项目也可以使用这个扩展包,不过为了快速集成,我们还可以使用基于该扩展包封装的适用于 Laravel 框架的 L5 Swagger 扩展包。

安装扩展包

在使用 L5 Swagger 扩展包之前,需要通过 Composer 安装它,对于 Laravel 5.8 版本,对应的安装指令如下:

composer require "darkaonline/l5-swagger:5.8.*"

如果是其他 Laravel 版本,对应的安装指令如下:

Laravel

Swagger UI

OpenAPI Spec compatibility

L5-Swagger5.7.x

3

3.0, 2.0

composer require "darkaonline/l5-swagger:5.7.*"

5.6.x

3

2.0

composer require "darkaonline/l5-swagger:5.6.*"

5.5.x

3

2.0

composer require "darkaonline/l5-swagger:5.5.*"

5.4.x

3

2.0

composer require "darkaonline/l5-swagger:5.4.*"

5.4.x

2.2

1.1, 1.2, 2.0

composer require "darkaonline/l5-swagger:~4.0"

5.3.x

2.2

1.1, 1.2, 2.0

composer require "darkaonline/l5-swagger:~3.0"

5.2.x

2.2

1.1, 1.2, 2.0

composer require "darkaonline/l5-swagger:~3.0"

5.1.x

2.2

1.1, 1.2, 2.0

composer require "darkaonline/l5-swagger:~3.0"

安装完成后,使用如下 Artisan 命令发布该扩展包的配置和视图文件:

php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"

然后在 .env 中设置 Laravel 项目 API 接口的 URL 根路径:

L5_SWAGGER_CONST_HOST=http://todo.test/dingoapi

取消 config/l5-swagger.php 配置文件中 security.passport 配置项的注释:

// Open API 3.0 support

'passport' => [ // Unique name of security

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swagger Maven Plugin是一个用于生成Swagger接口文档的Maven插件。它可以帮助开发人员在构建项目时自动生成Swagger规范的JSON或YAML文件,以便于API文档的管理和使用。 使用Swagger Maven Plugin生成接口文档swagger.json或swagger.yaml的步骤如下: 1. 在项目的pom.xml文件添加Swagger Maven Plugin的依赖配置: ```xml <build> <plugins> <plugin> <groupId>com.github.kongchen</groupId> <artifactId>swagger-maven-plugin</artifactId> <version>3.1.8</version> <configuration> <!-- 配置Swagger文档的基本信息 --> <apiSources> <apiSource> <springmvc>true</springmvc> <locations>com.example.controller</locations> <basePath>/api</basePath> <info> <title>API文档</title> <version>1.0.0</version> <description>API接口文档</description> <termsOfServiceUrl>http://example.com/terms-of-service</termsOfServiceUrl> <contact> <email>contact@example.com</email> </contact> <license> <name>Apache 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> </license> </info> </apiSource> </apiSources> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 2. 在项目根目录下执行以下命令生成Swagger接口文档: ``` mvn compile swagger:generate ``` 3. 执行完上述命令后,Swagger Maven Plugin会根据配置的信息扫描项目的接口,并生成Swagger规范的JSON或YAML文件。生成的文件默认保存在项目的target目录下的swagger目录生成Swagger接口文档可以通过访问http://localhost:8080/api/swagger-ui.html(假设项目部署在本地的8080端口)来查看和测试API接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值