bcastellano / json-schema-bundle
Symfony bundle to validate json api request and responses with json-schema
Installs: 34
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.5
- justinrainbow/json-schema: ^3.0
- symfony/config: ~2.3|~3.0
- symfony/dependency-injection: ~2.3|~3.0
- symfony/filesystem: ~2.3|~3.0
- symfony/http-foundation: ~2.3|~3.0
- symfony/http-kernel: ~2.3|~3.0
- symfony/process: ~2.3|~3.0
- symfony/yaml: ~2.3|~3.0
Requires (Dev)
- phpunit/phpunit: ~4.8|~5.0
- satooshi/php-coveralls: ^1.0
This package is not auto-updated.
Last update: 2025-02-01 21:57:26 UTC
README
Json-Schema Bundle
Symfony bundle to validate json api requests and responses based on JSON Schema specification.
It auto validates Requests and Responses for an API with json-schema files that can be auto generated from json body.
JSON Schema is described in its specification as:
JSON Schema is a JSON media type for defining the structure of JSON data. JSON Schema provides a contract for what JSON data is required for a given application and how to interact with it. JSON Schema is intended to define validation, documentation, hyperlink navigation, and interaction control of JSON data.
Features
- Json Schema service for validate jsons
- Listener to auto validate request and responses
- Json Schema file generation from json body (request and responses content)
Installation
Composer:
composer require bcastellano/json-schema-bundle
Load the bundle:
<?php // app/AppKernel.php use Bcastellano\JsonSchemaBundle\JsonSchemaBundle; public function registerBundles() { $bundles = array( // ... new JsonSchemaBundle(), ); }
Configuration
This is a complete example of configuration parameters:
json_schema: # Validator validator: # Class to use in validation. Is an enum class: Bcastellano\JsonSchemaBundle\Validator\JsonSchemaValidator # To auto register request and response events to auto validate jsons use_listener: true # Locator locator: # Class to locate schema files class: Bcastellano\JsonSchemaBundle\Locator\ControllerSchemaFileLocator # Directory for json schema files (also to save new ones) resources_dir: '%kernel.root_dir%/Resources/Schemas' # Configuration for schema generator generator: enabled: false # NOTE: these two configurations are incompatible, you can't configure both # this use any external command to generate schema from json command: '/path/to/command {{source_file}} --output {{target_file}}' # this use any custom service to generate schema from json service: 'some.custom.service'
License
This bundle is under the MIT License