Download the PHP package andphp/apidog without Composer
On this page you can find all versions of the php package andphp/apidog. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andphp/apidog
More information about andphp/apidog
Files in andphp/apidog
Informations about the package apidog
Api Watch Dog
fork https://github.com/daodao97/apidog 基于 hyperf3.0没有发布可使用版本 一个 Hyperf 框架的 Api 参数校验及 swagger 文档生成组件
- 根据注解自动进行Api参数的校验, 业务代码更纯粹.
- 根据注解自动生成Swagger文档, 让接口文档维护更省心.
在 1.2 版本后, 本扩展移除了内部自定义的验证器, 只保留的 hyperf 原生验证器, 以保持验证规则的统一
旧版本文档 查看
安装
使用
1. 发布配置文件
2. 修改配置文件
注意 与1.2及之前的版本相比, 配置文件结构及文件名 略有不同
(1) 配置文件结构的优化, 增加了swagger外的整体配置
(2) 配置文件的名称 由 swagger.php 改为 apidog.php
根据需求修改 config/autoload/apidog.php
3. 启用 Api参数校验中间件
4. 校验规则的定义
规则列表参见 hyperf/validation 文档
更详细的规则支持列表可以参考 laravel/validation 文档
扩展在原生的基础上进行了封装, 支持方便的进行 自定义校验
和 控制器回调校验
实现思路
api参数的自动校验: 通过中间件拦截 http 请求, 根据注解中的参数定义, 通过 valiation
自动验证和过滤, 如果验证失败, 则拦截请求. 其中valiation
包含 规则校验, 参数过滤, 自定义校验 三部分.
swagger文档生成: 在php bin/hyperf.php start
启动 http-server
时, 通过监听 BootAppConfListener
事件, 扫码控制器注解, 通过注解中的 访问类型, 参数格式, 返回类型 等, 自动组装 swagger.json
结构, 最后输出到 config/autoload/apidog.php
定义的文件路径中
支持的注解
Api类型
GetApi
, PostApi
, PutApi
, DeleteApi
参数类型
Header
, Query
, Body
, FormData
, Path
其他
ApiController
, ApiResponse
, ApiVersion
, ApiServer
, ApiDefinitions
, ApiDefinition
ApiServer
当你在 config/autoload.php/server.php servers
中配置了多个 http
服务时, 如果想不同服务生成不同的swagger.json
可以在控制器中增加此注解.
ApiVersion
当你的统一个接口存在不同版本时, 可以使用此注解, 路由注册时会为每个木有增加版本号, 如上方代码注册的实际路由为 /v1/user/***
ApiDefinition
定义一个 Definition
,用于Response的复用。 swagger 的difinition是以引用的方式来嵌套的,如果需要嵌套另外一个(值为object类型就需要嵌套了),可以指定具体 properties
中的 $ref
属性
ApiDefinitions
定义一个组Definition
ApiResponse
响应体的schema
支持为key设置简介. $ref
属性可以引用 ApiDefinition
定义好的结构(该属性优先级最高)
具体使用方式参见下方样例
样例
Swagger UI启动
本组件提供了两种方式来启用SwaggerUI
, 当config/autoload/apidog.php enable = true
时
方式一
系统启动时, swagger.json
会自动输出到配置文件中定义的 output_file
中, 此时我们到swagger ui
的前端文件结合nginx
启动web服务
方式二
也可以使用组件提供的快捷命令, 快速启动一个 swagger ui
.
Swagger展示
更新日志
- 20220222
- swagger bug fix by PR
- 20210829
- fix
swagger
生成时server
类型过滤问题, 屏蔽非http的服务 - 增加
global
全局的参数规则, 详见apidog.php
global
节点
- fix
- 20201230
- 支持 hyperf 2.1 版本
- 修复
@Header
参数名被底层转换为全小写导致的验证无效
- 20201126
- 统一
version
,prefix
,path
的前缀处理逻辑 issue/42
- 统一
- 20201111 @ice
- 修复 初始化 swagger.json 文件生成
- 修复 definition 在swagger ui 正确显示 定义数据类型
- 添加 注解 Header ,Query 支持 类 注解
- 添加 FormData 注解 key 参数 支持 a.b 验证 swagger ui 支持
- 添加 Body 注解 支持 参数 a.b 和 a.*.b 验证 swagger ui 支持
- 修复 definition 返回 参数为 小数在 swagger ui 不显示问题
- 添加 异常 ApiDogException 抛出,以及配置 异常抛出开关
- 添加 返回数据 模版
- 20201014
- 优化swagger ui, 命令模式监听
0.0.0.0
, 并支持自定义端口
- 优化swagger ui, 命令模式监听
- 20200911
- Response 增加纯列表模式 @zxyfaxcn
- 20200904
- 20200813
- 增加Api版本,
ApiVersion
, 可以给路由增加版本前缀 - 增加多服务支持,
ApiServer
, 可以按服务生成swagger.json
ApiResponse shema
支持字段简介
- 增加Api版本,
- 20200812
body
结构增加多级支持FormData
增加 文件上传样例- 增加
swagger ui
命令行工具
All versions of apidog with dependencies
ext-json Version *
hyperf/command Version 3.0.*
hyperf/http-server Version 3.0.*
hyperf/logger Version 3.0.*
hyperf/validation Version 3.0.*