wt-health/laravel-json-schema-request
| Install | |
|---|---|
composer require wt-health/laravel-json-schema-request |
|
| Latest Version: | v3.2.0 |
| PHP: | ^8.3|^8.4 |
| License: | MIT |
| Last Updated: | Feb 2, 2026 |
| Links: | GitHub · Packagist |
JSON Schema Request
Laravels Form Request Validation for JSON Schema documents
Installation
composer require wt-health/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 Wthealth\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.
Related Packages
Laravel 5 wrapper for the IsoCodes Validation library from ronanguilloux
Laravel 5 package for better translation syntax using php-intl extension
Adds phone number functionality to Laravel based on Google's libphonenumber API.

