Download the PHP package carsdotcom/laravel-json-schema without Composer
On this page you can find all versions of the php package carsdotcom/laravel-json-schema. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download carsdotcom/laravel-json-schema
More information about carsdotcom/laravel-json-schema
Files in carsdotcom/laravel-json-schema
Package laravel-json-schema
Short Description Json Schema validation for Laravel projects
License MIT
Informations about the package laravel-json-schema
laravel-json-schema
Use JsonSchema in Laravel apps
Purpose
This library builds on the outstanding JsonSchema validator opis/json-schema
The entire intent of this library is to make JsonSchema feel like a first class citizen in a Laravel project.
- Adds a new config file,
config/json-schema.php
, to configure your root directory for self-hosted schema files. - Adds the
SchemaValidator
facade that can be used to instantiate the validator with appropriate loaders. - Adds new PhpUnit assertions in the
Carsdotcom\JsonSchemaValidation\Traits\JsonSchemaAssertions
trait, such as validating that a mixed item validates for a specific schema. - Most interestingly, it lets you use JsonSchema to validate incoming Requests bodies, and/or validate your own outgoing response bodies, all using JsonSchema schemas that you can then export into OpenAPI documentation.
Laravel Version Compatibility
This package supports Laravel v9+
.
Installation
Using Laravel JSON Schema
Setup
Config File
Copy the json-schema.php
file from the vendor/carsdotcom/laravel-json-schema/config
folder to your application's config
folder.
Schema Storage
- Create a
Schemas
folder under your application root folder, such asapp/Schemas
. -
Create a new storage disk under the
disks
key within your application'sconfig/filesystem.php
file: - Add your schema files to the
app/Schemas
folder. You may create subfolders to keep things organized.
Generate Enum Schemas
This is an optional step, but can be super helpful.
Note: Enums must be created either as a built-in PHP enum
object or a MyCLabs\Enum\Enum
class.
- Add
use Carsdotcom\JsonSchemaValidation\Traits\GeneratesSchemaTrait;
to the declarations in the Enum. - Add a
SCHEMA
constant to the enum. It's value will be the relative path to your schema file, such as:const SCHEMA = '/Acme/Enums/item_type.json';
- Run the
schema:generate
Artisan command.
Validating JSON Data Against a Schema
For this example, we'll be using these objects:
Hosted JSON Schema File
This is assumed to be stored in your app/Schemas
folder as Product.json
.
JSON Data to be Validated
Application Code for Validation
Additional Functionality
Getting the Content of a Schema File
Storing a Schema File at a Specific Location
Adding an In-Memory Schema File
All versions of laravel-json-schema with dependencies
opis/json-schema Version ^2.3
php Version ^8.1