avalanche-development / swagger-header-middleware
0.3.0
2017-01-08 11:22 UTC
Requires
- php: >=5.6.0
- avalanche-development/peel: ^0.3
- psr/http-message: ^1.0
- psr/log: ^1.0
Requires (Dev)
- codeclimate/php-test-reporter: ^0.3
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-14 19:58:44 UTC
README
PHP中间件,尝试推断出站内容类型并附加相应的头部。
安装
建议您使用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许可下发布。有关更多信息,请参阅许可文件。