avalanche-development / swagger-caster-middleware
Requires
- avalanche-development/peel: ^0.3.0
- avalanche-development/swagger-router-middleware: ^1.0
- psr/http-message: ^1.0
- psr/log: ^1.0
- zendframework/zend-diactoros: ^1.3
Requires (Dev)
- codeclimate/php-test-reporter: ^0.3
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-25 00:08:19 UTC
README
PHP 中间件,根据 Swagger 定义将参数转换为相应的类型。信息存储在关联到请求对象的 AvalancheDevelopment\ParsedSwaggerInterface 中。
安装
建议您使用 Composer 安装 swagger-caster-middleware。
$ composer require avalanche-development/swagger-caster-middleware
swagger-caster-middleware 需要 PHP 5.6 或更高版本。
用法
此中间件期望在请求对象中已经填充并附加了 AvalancheDevelopment\ParsedSwaggerInterface 属性。如果没有它,所有逻辑都将跳过。否则,中间件将遍历 params 数组并将每个值转换为相应的类型,用转换后的值覆盖原始的 'value' 属性。
$caster = new AvalancheDevelopment\SwaggerCasterMiddleware\Caster(); $result = $caster($request, $response, $next); // middleware signature
建议将此中间件放在 AvalancheDevelopment\SwaggerRouterMiddleware 之后,后者将解析并附加 AvalancheDevelopment\ParsedSwaggerInterface。如果没有它,您可能需要重新创建 Swagger/请求解析器。
接口
一旦一切通过成功,AvalancheDevelopment\ParsedSwaggerInterface 中的每个参数都将具有以下属性。
'swagger' => [ ..., 'params' => [ 'originalValue' => 'true', 'type' => 'boolean', 'value' => true, ], ]
无效请求
如果参数转换出现错误,看起来是请求的问题,将抛出一个 Peel BadRequest。错误处理程序可以监听这些 HttpErrorInterface 异常并相应地做出响应。这通常与日期和日期时间属性相关。
开发
此库仍在开发中,可能会遇到一些错误。如果您发现任何问题,请随时提交问题或拉取请求。
测试
要执行测试套件,您需要 phpunit(并安装具有开发依赖项的包)。
$ phpunit
许可
swagger-caster-middleware 在 MIT 许可下发布。有关更多信息,请参阅 许可文件。