跳到主要内容

Swagger 文档

XinAdmin 提供了开箱即用的 php-swagger 支持,你可以直接在代码中使用 php-swagger 生成版本 3.0 或 3.1 中的 OpenAPI 文档。 使用 swagger-php 可以在 PHP 源文件中编写 API 文档,这有助于使文档保持最新状态。 并且使用 Redocly redoc 作为 swagger 的文档展示。

访问文档

我们在 laravel 路由中已经配置好了swagger文档的路由,你可以直接访问 /doc 来查阅文档。

# 访问地址 http://{youhost}/doc
# http://127.0.0.1:8000/doc

使用方法

XinAdmin 中,我们使用 php-swagger 来生成 OpenAPI 文档,你可以在 XinAdmin 中使用 php-swagger 来生成 OpenAPI 文档。

我们在BaseControler.php 中提供了最基础的配置:

#[OA\Info(
version: '1.0.0',
description: 'XinAdmin [ A Full stack framework ] <br> Copyright (c) 2023~2024 http://xinadmin.cn All rights reserved. <br> Apache License ( http://www.apache.org/licenses/LICENSE-2.0 ) <br> Author: 小刘同学 <2302563948@qq.com> <br>',
title: 'XinAdmin DOCUMENTS',
)]
abstract class BaseController {

#...

}

你可以在你的控制器的方法中,直接使用 @OA\ 注释来生成 OpenAPI 文档。

info

使用命名空间别名可以简化键入并提高可读性。

所有属性都在命名空间中。OpenApi\Attributes

引入 OpenApi\Attributes 命名空间

use OpenApi\Attributes as OA;

嵌套使用:



#[OA\Get(
path: '/api/users',
responses: [
new OA\Response(response: 200, description: 'AOK'),
new OA\Response(response: 401, description: 'Not allowed'),
]
)]
public function users() { /* ... */ }

未嵌套:

#[OA\Get(path: '/api/users')]
#[OA\Response(response: 200, description: 'AOK')]
#[OA\Response(response: 401, description: 'Not allowed')]
public function users() { /* ... */ }

更多示例和使用说明请参考:https://zircote.github.io/swagger-php/guide/