nicofuma/swagger-bundle

集成 Swagger 的包,用于验证请求和响应

安装次数: 21,020

依赖项: 0

建议者: 0

安全性: 0

星级: 8

关注者: 4

分支: 3

公开问题: 1

类型:symfony-bundle

1.0.7 2017-02-06 14:13 UTC

README

Latest Stable Version Latest Unstable Version License Travis Build Status SensioLabsInsight Scrutinizer Code Quality Code Coverage

描述

此包将 Swagger 集成到 Symfony。

目前支持以下功能

  • 基于 Swagger 定义自动验证所有传入请求(包括头部和查询字符串)
  • 使用配置配置多个 API,使用不同的 Swagger 文件
  • FOSRestBundle 集成:自动配置 ParamFetcher
  • Behat 集成:上下文验证响应

安装

使用 Composer 添加所需的包。

稳定版本

composer require nicofuma/swagger-bundle:^1.0

最新版本

composer require nicofuma/swagger-bundle:@dev

启用包

将包添加到您的 AppKernel。

// in %kernel.root_dir%/AppKernel.php
$bundles = array(
    // ...
    new Nicofuma\SwaggerBundle\NicofumaSwaggerBundle(),
    // ...
);

配置

nicofuma_swagger:
    definition:
        pattern: '/api/v1'
        swagger_file: swagger/swagger.json
        strict: true

pattern 与此模式匹配的任何 URL 都将针对 swagger_file Swagger 文件进行测试,用于此 API。可以是绝对路径、相对于 %kernel.root_dir%/Resources/ 的路径或包资源 @MyBundle/Dir/swagger.json strict 如果路径与 Swagger 文件中的任何定义不匹配,是否必须抛出异常

配置参考

# Default configuration for extension with alias: "swagger"
nicofuma_swagger:
    definitions:
        -
            pattern:
                # use the urldecoded format
                path:                 ^/api/public/
                host:                 null
                ips:                  []
                methods:              []
            swagger_file:         swagger-public.json
            strict:               true
        -
            pattern:
                # use the urldecoded format
                path:                 ^/api/private/
                host:                 null
                ips:                  []
                methods:              []
            swagger_file:         swagger-private.json
            strict:               true

Behat 集成

在您的 behat.yml 文件中添加以下上下文

- Nicofuma\SwaggerBundle\Tests\Behat\Context\SwaggerContext: {map: '@swagger.validator_map'}

贡献

NicofumaSwaggerBundle 是一个开源项目。如果您想贡献,请这样做。

许可协议

此库受 MIT 许可协议的约束。有关完整的版权和许可信息,请查看与源代码一起分发的 LICENSE 文件。