LaravelPackages.net
Acme Inc.
Toggle sidebar
sadovojav/laravel-json-schema-request

Like FormRequests, but for validating against a json-schema

4
0
1.0.0
About sadovojav/laravel-json-schema-request

sadovojav/laravel-json-schema-request is a Laravel package for like formrequests, but for validating against a json-schema. It currently has 0 GitHub stars and 4 downloads on Packagist (latest version 1.0.0). Install it with composer require sadovojav/laravel-json-schema-request. Discover more Laravel packages by sadovojav or browse all Laravel packages to compare alternatives.

Last updated

JSON Schema Request

CI Action Code Coverage Scrutinizer Code Quality

Laravels Form Request Validation for JSON Schema documents

Installation

 composer require sadovojav/laravel-json-schema-request

Usage

The development experience is identical to Laravel's Form Request Validation, except instead of writing Laravel validation rules, you write a JSON Schema.

You can create a new request using the make:json-request command

artisan make:json-request MyJsonRequest

You will now have new request class App\Http\Requests\MyJsonRequest, Below you can see a basic example schema.

<?php

namespace App\Http\Requests;

use Webtools\JsonSchemaRequest\JsonSchemaRequest;

class MyJsonRequest extends JsonSchemaRequest
{
    public function schema(): array
    {
        return [
            'type' => 'object',
            'properties' => [
                'first_name' => ['type' => 'string'],
                'last_name' => ['type' => 'string'],
                'email' => ['type' => 'string', 'format' => 'email'],
            ],
            'required' => ['first_name', 'last_name', 'email'],
            'additionalProperties' => false,
        ];
    }
}

Once you have a JsonSchemaRequest object, all you need to do is type-hint the request on your controller method. The incoming form request is validated before the controller method is called.

public function store(MyJsonRequest $request)
{
    // The incoming request is valid...

    // Retrieve the validated input data...
    $validated = $request->validated();
}

License

The MIT License (MIT). Please see License File for more information.

Comments