# hyperf-api-doc **Repository Path**: hesb/hyperf-api-doc ## Basic Information - **Project Name**: hyperf-api-doc - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-26 - **Last Updated**: 2024-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PHP Hyperf api doc # 介绍 > 基于 [tw2066/dto](https://github.com/tw2066/dto) [tw2066/api-docs](https://github.com/tw2066/api-docs) 框架改进而来,特别鸣谢tw2066/dto给的灵感 # 运行环境 * php >= 8.2 * hyperf >= 3.0 # 安装 ```shell composer require hesb/hyperf-api-doc php bin/hyperf.php vendor:publish hesb/hyperf-api-doc ``` # 使用 ## 例子 ```php use Hesb\Hyperf\ApiDocs\Annotation\Api; use Hesb\Hyperf\ApiDocs\Annotation\ApiHeader; use Hesb\Hyperf\ApiDocs\Annotation\ApiOperation; #[Api(tags: 'demo管理')] #[ApiHeader('token')] #[ApiHeader('tokenType')] class DemoController extends AbstractController { #[ApiOperation('登陆')] public function index(#[RequestQuery] DemoQuery $request): Contact { $contact = new Contact(); $contact->name = $request->name; var_dump($request); return $contact; } #[ApiOperation('更新token')] public function add(#[RequestBody] DemoBodyRequest $request, #[RequestQuery] DemoQuery $query) { var_dump($query); return json_encode($request, JSON_UNESCAPED_UNICODE); } public function fromData(#[RequestFormData] DemoFormData $formData): bool { $file = $this->request->file('photo'); var_dump($file); var_dump($formData); return true; } } ``` ```php use Hesb\Hyperf\ApiDocs\Annotation\ApiModelProperty; class DemoQuery { #[ApiModelProperty('用户名')] public string $user_name; #[ApiModelProperty('真实姓名')] public string $name; } ``` ```php use Hesb\Hyperf\ApiDocs\Annotation\ApiModelProperty; class DemoBody { #[ApiModelProperty('用户名')] public string $user_name; #[ApiModelProperty('真实姓名')] public string $name; } ``` ```php use Hesb\Hyperf\ApiDocs\Annotation\ApiModelProperty; use Psr\Http\Message\UploadedFileInterface; class DemoBody { #[ApiModelProperty('上传文件')] public UploadedFileInterface $file; #[ApiModelProperty('真实姓名')] public string $name; } UploadedFileInterface为file句柄对象类型 ```