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

在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接口添加描述。例如:
/** * @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文档。