nicofuma / swagger-bundle
A bundle integrating swagger to validate Requests and Responses
Installs: 21 107
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 4
Forks: 3
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=5.6.0
- fr3d/swagger-assertions: ^0.7.0
- symfony/dependency-injection: ^2.3|^3.0
- symfony/event-dispatcher: ^2.3|^3.0
- symfony/framework-bundle: ^2.3|^3.0
- symfony/http-foundation: ^2.4|^3.0
- symfony/validator: ^2.3|^3.0
Requires (Dev)
- friendsofsymfony/rest-bundle: ^1.7
- phpunit/phpunit: ^5.2
- symfony/phpunit-bridge: ^2.7|^3.0
This package is auto-updated.
Last update: 2024-12-18 01:33:41 UTC
README
Description
This bundle integrates Swagger in Symfony.
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
Installation
Add the required package using composer.
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.
// 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
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
- 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.
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.