php自动生成swagger文档
PHP Swagger Api Docs
基于 Hyperf 框架的 swagger 文档生成组件
优点
- 安装好组件,启动项目自动扫描,即可看到Swagger文档
- DTO模式,可维护性好,扩展性好
例子
请参考example目录
安装
composer require tangwei/apidocs
使用
1. 发布配置文件
php bin/hyperf.php vendor:publish tangwei/apidocs
2. 直接启动框架(需要有http服务)
php bin/hyperf.php start
[INFO] Swagger docs url at http://0.0.0.0:9501/swagger
[INFO] TaskWorker#1 started.
[INFO] Worker#0 started.
[INFO] HTTP Server listening at 0.0.0.0:9501
- 看到
Swagger docs url
显示,表示文档生成成功 - 访问
/swagger
可以看到swagger页面
Swagger界面
注解
命名空间:
Hyperf\DTO\Annotation\Contracts
#[RequestBody] 注解
- 获取Body参数
public function add(#[RequestBody] DemoBodyRequest $request){}
#[RequestQuery] 注解
- 获取GET参数
public function add(#[RequestQuery] DemoQuery $request){}
#[RequestFormData] 注解
- 获取表单请求
public function fromData(#[RequestFormData] DemoFormData $formData){}
- 获取文件(和表单一起使用)
#[ApiFormData(name: 'photo', format: 'binary')]
- 获取Body参数和GET参数
public function add(#[RequestBody] DemoBodyRequest $request, #[RequestQuery] DemoQuery $query){}
验证器
基于框架的验证
安装hyperf框架验证器hyperf/validation, 并配置(已安装忽略)
- 注解
Required
Between
Date
Email
Image
Integer
Nullable
Numeric
Url
Validation
...
- 校验生效
只需在控制器方法中加上 #[Valid] 注解
public function index(#[RequestQuery] #[Valid] DemoQuery $request){}
class DemoQuery
{
#[ApiModelProperty('名称')]
#[Required]
#[In(['qq','aa'])]
public string $name;
}
欢迎大家使用…
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: