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/