在ThinkPHP框架下使用OpenAPI进行接口文档自动生成,可按照以下步骤进行:
安装和配置topthink/think-swagger
扩展包,该扩展包是基于OpenAPI规范的接口文档自动生成工具,可以通过composer
进行安装,安装命令如下:
composer require topthink/think-swagger
在config
目录下创建swagger.php
配置文件,并进行相关配置,如下所示:
<?php
return [
'title' => 'API文档', // 文档标题
'version' => '1.0.0', // 文档版本
'url' => 'http://localhost/api', // 接口根地址
'controllers' => [
app\index\controller\User::class, // 需要生成文档的控制器
],
];
在需要生成文档的控制器中,使用@SWG
注解来描述接口和参数信息,如下所示:
<?php
namespace app\index\controller;
use think\Controller; use think\Request; use think\Response; use think\annotation\route; use think\annotation\Swagger;
/**
@SWG\Tag(
name="User",
description="用户管理"
) */ class User extends Controller { /**
@SWG\Get(
path="/user",
tags={"User"},
summary="获取用户列表",
description="",
operationId="getUserList",
produces={"application/json"},
@SWG\Parameter(
name="name",
in="query",
description="用户名",
required=false,
type="string"
),
@SWG\Response(
response=200,
description="成功",
@SWG\Schema(
type="array",
@SWG\Items(ref="#/definitions/User")
)
),
@SWG\Response(
response=400,
description="参数错误",
),
@SWG\Response(
response=401,
description="未授权",
)
) */ public function index(Request $request) { // 获取参数并处理逻辑 ...
// 返回响应 return Response::create($data, 'json'); } }
public
目录下创建swagger-ui
目录,并将Swagger UI
相关文件复制到该目录下(可通过Swagger UI
官网下载),然后在浏览器中访问http://localhost/swagger-ui/index.html
即可查看文档。需要注意的是,由于在中国大陆地区访问Swagger UI
的官网可能会受到限制,因此建议将Swagger UI
相关文件下载到本地进行使用。
参考链接: