在ThinkPHP中,可以使用Swagger和Swagger UI来实现REST API文档自动生成。
首先,需要在composer.json文件中添加swagger-php库的依赖:
"require-dev": {
"zircote/swagger-php": "^3.0"
}
然后,在控制器中使用注解定义API文档,例如:
/**
* @SWG\Get(
* path="/api/user/{id}",
* summary="获取用户信息",
* tags={"User"},
* @SWG\Parameter(
* name="id",
* in="path",
* description="用户ID",
* type="integer",
* required=true
* ),
* @SWG\Response(
* response="200",
* description="成功",
* @SWG\Schema(
* type="object",
* @SWG\Property(
* property="id",
* type="integer",
* description="用户ID"
* ),
* @SWG\Property(
* property="name",
* type="string",
* description="用户名"
* )
* )
* )
* )
*/
public function getUser($id)
{
// ...
}
其中,@SWG开头的注解表示这是Swagger的定义,包括API请求的方法、路径、参数、响应等信息。
接着,在路由中配置Swagger UI的路由:
Route::get('swagger', '\think\swagger\SwaggerController@index');
最后,在浏览器中访问/swagger即可查看自动生成的API文档。
需要注意的是,Swagger和Swagger UI的版本需要匹配,否则可能会出现显示问题。同时,Swagger的定义需要遵循一定的规范,例如参数的in属性只能是path、query、header、formData或body等。