swagger-php

作者admin

4月 28, 2025

swagger-php 是一个基于 PHP 的 OpenAPI 规范(OAS)生成工具,它可以通过 PHPDoc 注解来自动生成 API 文档,支持 OpenAPI 3.0 和 2.0 规范。

适用于 Laravel、Slim、CodeIgniter 等框架。

核心功能

  • 自动生成 API 文档:通过 PHP 代码中的注解(annotations),解析代码并生成 swagger.jsonswagger.yaml
  • 支持 OpenAPI 3.0 和 2.0:可以用于 RESTful API 的标准化文档管理。
  • 与 Swagger UI 兼容:生成的 swagger.json 可用于 Swagger UI 进行可视化展示和 API 调试。

安装使用

使用 Composer 安装:

composer require zircote/swagger-php

使用命令行工具生成 API 文档:

php vendor/bin/openapi –output docs/swagger.json .

基本用法

1 添加 swagger-php 注解

在你的 PHP 代码中,你可以使用 PHPDoc 注解来标记 API,如下所示:

<?php

use OpenApi\Annotations as OA;

/**
* @OA\Info(
* title=”示例 API”,
* version=”1.0.0″,
* description=”这是一个使用 swagger-php 生成的 API 文档示例”
* )
*/

/**
* @OA\Get(
* path=”/users”,
* summary=”获取用户列表”,
* tags={“用户”},
* @OA\Response(
* response=200,
* description=”成功返回用户列表”,
* @OA\JsonContent(
* type=”array”,
* @OA\Items(
* type=”object”,
* @OA\Property(property=”id”, type=”integer”, example=1),
* @OA\Property(property=”name”, type=”string”, example=”张三”)
* )
* )
* )
* )
*/
function getUsers() {
echo json_encode([
[“id” => 1, “name” => “张三”],
[“id” => 2, “name” => “李四”]
]);
}

2 生成 API 文档

运行以下命令,扫描指定目录并生成 swagger.json

php vendor/bin/openapi –output docs/swagger.json .

3 使用 Swagger UI 展示 API

3.1) 下载 Swagger UI

3.2) 在 index.html 中修改

<script>
window.onload = function() {
const ui = SwaggerUIBundle({
url: “docs/swagger.json”,
dom_id: “#swagger-ui”
});
};
</script>

3.3) 运行 php -S localhost:8000 访问 Swagger UI 页面。

常见注解

注解 作用
@OA\Info(title="API 名称", version="1.0") 定义 API 基本信息
@OA\Get(path="/users") 定义 GET 请求的接口
@OA\Post(path="/users") 定义 POST 请求的接口
@OA\Parameter(name="id", in="query", required=true, @OA\Schema(type="integer")) 定义 URL 参数
@OA\Response(response=200, description="成功") 定义 API 响应
@OA\JsonContent(type="array", @OA\Items(type="object")) 定义 JSON 返回格式

https://www.49855.net/openapi规范-swagger-规范

作者 admin

百度广告效果展示