avalanche-development/swagger-header-middleware

0.3.0 2017-01-08 11:22 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:58:44 UTC


README

PHP中间件,尝试推断出站内容类型并附加相应的头部。

Build Status Code Climate Test Coverage

安装

建议您使用Composer安装swagger-header-middleware。

$ composer require avalanche-development/swagger-header-middleware

swagger-header-middleware需要PHP 5.6或更高版本。

使用

此中间件依赖于swagger-router-middleware,以便在请求对象中附加已解析的swagger属性。如果未找到,则跳过对响应对象的任何修改。如果找到了,它将尝试附加出站内容类型。

$header = new AvalancheDevelopment\SwaggerHeaderMiddleware\Header;
$result = $header($request, $response, $next); // middleware signature

建议将此作为栈中的顶部项之一,在swagger-router-middleware之后不久,并确保在此执行之后完成任何类型的头部验证。

接口

此中间件实现了LoggerAwareInterface,因此您可以自由地附加您的记录器以实现所有那些日志功能。

$header = new AvalancheDevelopment\SwaggerHeaderMiddleware\Header;
$header->setLogger($logger);
... etc

再次强调,它依赖于请求中存在swagger属性。如果没有传递包含该属性的请求对象,则将跳过所有内容。值基于规范中的操作和全局设置进行解析。

$swagger = $request->getAttribute('swagger');
var_dump($swagger);
...
[
  'produces' => [
    'application/json',
  ],
  'consumes' => [
    'application/json',
  ],
]

如果传递了一个JSON字符串,则此中间件将自动附加一个application/json内容类型头部...前提是尚未提供头部。要覆盖此超范围的行为,只需在到达这里之前附加您自己的头部。

开发

此库正在积极开发中。某些功能尚不支持(例如检测非JSON头部类型)。

测试

要执行测试套件,您需要phpunit(以及安装带有dev依赖项的包)。

$ phpunit

许可

swagger-header-middleware在MIT许可下发布。有关更多信息,请参阅许可文件