2017 © Pedro Peláez
 

symfony-bundle swagger-bundle

A bundle integrating swagger to validate Requests and Responses

image

nicofuma/swagger-bundle

A bundle integrating swagger to validate Requests and Responses

  • Monday, February 6, 2017
  • by Nicofuma
  • Repository
  • 3 Watchers
  • 9 Stars
  • 7,649 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 13 Versions
  • 12 % Grown

The README.md

NicofumaSwaggerBundle

Latest Stable Version Latest Unstable Version License Travis Build Status SensioLabsInsight Scrutinizer Code Quality Code Coverage, (*1)

Description

This bundle integrates Swagger in Symfony., (*2)

Currently, it supports the following features: - Automatic validation of all incoming requests based on the Swagger definition (including headers and query string) - Configuring multiple API with different swagger files using configuration - FOSRestBundle integration: automatic configuration of the ParamFetcher - Behat integration: context to validate the response, (*3)

Installation

Add the required package using composer., (*4)

Stable version

composer require nicofuma/swagger-bundle:^1.0

Bleeding-edge version

composer require nicofuma/swagger-bundle:@dev

Enabling the bundle

Add the bundle to your AppKernel., (*5)

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

Configuration

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

pattern any url matching this pattern will be tested against the swagger_file swagger_file swagger file to use for this API. Can be either an bsolute path, a path relative to %kernel.root_dir%/Resources/ or a bundle resource @MyBundle/Dir/swagger.json strict whether or not an exception must be thrown if the path does not match any definition in the swagger file, (*6)

Configuration reference

# 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 integration

Add the following context in your behat.yml file, (*7)

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

Contributing

NicofumaSwaggerBundle is an open source project. If you'd like to contribute, please do., (*8)

License

This library is under the MIT license. For the full copyright and license information, please view the LICENSE file that was distributed with this source code., (*9)

The Versions