hesb / hyperf-api-doc
A swagger library for Hyperf.
2.0.1
2024-12-10 14:35 UTC
Requires
- php: >=8.2
- hesb/hyperf-dto: *
- swagger-api/swagger-ui: ^4
- zircote/swagger-php: ^4.5
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.0
- phpstan/phpstan: ^0.12
- phpunit/phpunit: >=7.0
- symfony/var-dumper: ^5.1
This package is not auto-updated.
Last update: 2025-05-27 16:44:57 UTC
README
介绍
基于 tw2066/dto tw2066/api-docs 框架改进而来,特别鸣谢tw2066/dto给的灵感
运行环境
- php >= 8.2
- hyperf >= 3.0
安装
composer require hesb/hyperf-api-doc
php bin/hyperf.php vendor:publish hesb/hyperf-api-doc
使用
例子
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;
}
}
use Hesb\Hyperf\ApiDocs\Annotation\ApiModelProperty;
class DemoQuery
{
#[ApiModelProperty('用户名')]
public string $user_name;
#[ApiModelProperty('真实姓名')]
public string $name;
}
use Hesb\Hyperf\ApiDocs\Annotation\ApiModelProperty;
class DemoBody
{
#[ApiModelProperty('用户名')]
public string $user_name;
#[ApiModelProperty('真实姓名')]
public string $name;
}
use Hesb\Hyperf\ApiDocs\Annotation\ApiModelProperty;
use Psr\Http\Message\UploadedFileInterface;
class DemoBody
{
#[ApiModelProperty('上传文件')]
public UploadedFileInterface $file;
#[ApiModelProperty('真实姓名')]
public string $name;
}
UploadedFileInterface为file句柄对象类型