新闻中心 分类>>

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

2025-12-12 00:00:00
浏览次数:
返回列表
使用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 "L5Swagger\L5SwaggerServiceProvider"

这会生成 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接口添加描述。例如:

/** * @OA\Get( * path="/api/users", * tags={"Users"}, * summary="获取用户列表", * @OA\Response( * response=200, * description="成功返回用户列表", * @OA\JsonContent(type="array", @OA\Items(ref="#/components/schemas/User")) * ) * ) */ public function index() { return User::all(); }

支持的注解包括:@OA\Info@OA\PathItem@OA\Schema 等,完整语法参考 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文档。

搜索