Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Json Schema Bundle Laravel Package

bcastellano/json-schema-bundle

View on GitHub
Deep Wiki
Context7

Build Status Coverage Status SensioLabsInsight License

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

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge