avalanche-development/swagger-caster-middleware

0.2.1 2017-05-31 11:57 UTC

This package is not auto-updated.

Last update: 2024-09-25 00:08:19 UTC


README

PHP 中间件,根据 Swagger 定义将参数转换为相应的类型。信息存储在关联到请求对象的 AvalancheDevelopment\ParsedSwaggerInterface 中。

Build Status Code Climate Test Coverage

安装

建议您使用 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 许可下发布。有关更多信息,请参阅 许可文件