Laravel如何为API生成Swagger或OpenAPI文档

1次阅读

使用DarkaOnLine/L5-Swagger包通过注解自动生成OpenAPI文档,1. 安装并发配置文件;2. 配置扫描路径与路由;3. 在控制器中添加@OA注解描述接口;4. 生成文档并访问/api/documentation查看交互式页面;5. 可选自动更新机制保持文档同步。

Laravel如何为API生成Swagger或OpenAPI文档

laravel项目中为API生成Swagger(OpenAPI)文档,最常用且高效的方式是使用DarkaOnLine/L5-Swagger包。它基于Swagger php注解,能自动生成符合OpenAPI规范的交互式API文档。

1. 安装 L5-Swagger 包

在Laravel项目根目录下运行以下命令安装:

composer require “darkaonline/l5-swagger”

安装完成后,发布配置文件

php artisan vendor:publish –provider “L5SwaggerL5SwaggerServiceProvider”

这会生成 config/l5-swagger.php 和视图资源文件。

2. 配置 Swagger 文档路径与扫描

打开 config/l5-swagger.php,确认以下关键配置项:

  • routes.api:访问文档的路由,如 /api/documentation
  • paths.docs:文档存储路径,默认为 storage/api-docs/
  • paths.annotations:注解扫描路径,通常设为 ./app/http/Controllers

确保扫描路径包含你写注解的控制器或API类。

3. 在控制器中编写 OpenAPI 注解

使用PHP注解为API接口添加描述。例如:

Laravel如何为API生成Swagger或OpenAPI文档

NNiji·Journey

二次元风格绘画生成器,由 Spellbrush 与 Midjourney 共同设计开发

Laravel如何为API生成Swagger或OpenAPI文档 61

查看详情 Laravel如何为API生成Swagger或OpenAPI文档

/** * @OAGet( * path=”/api/users”, * tags={“Users”}, * summary=”获取用户列表”, * @OAResponse( * response=200, * description=”成功返回用户列表”, * @OAjsonContent(type=”Array”, @OAItems(ref=”#/components/schemas/User”)) * ) * ) */ public function index() { return User::all(); }

支持的注解包括:@OAInfo@OAPathItem@OASchema 等,完整语法参考 Swagger-PHP 官方文档

4. 生成和查看文档

运行以下命令生成json格式的OpenAPI文档:

php artisan l5-swagger:generate

启动Laravel服务后,访问:

http://your-app.test/api/documentation

即可查看由Swagger UI渲染的交互式API文档页面。

5. (可选)自动更新文档

开发阶段可在 AppServiceProvider 或使用监听器,在代码变更时自动重新生成文档,或在CI流程中加入生成命令。

基本上就这些。只要写好注解并正确配置,L5-Swagger就能帮你维护一份实时、可视化的API文档。

以上就是Laravel如何为API生成Swagger或OpenAPI文档的详细内容,更多请关注

text=ZqhQzanResources