webtoolsnz/laravel-json-schema-request

类似于FormRequests,但用于与json-schema进行验证

1.0.0 2020-06-18 22:56 UTC

This package is auto-updated.

Last update: 2024-09-20 08:12:11 UTC


README

CI Action Code Coverage Scrutinizer Code Quality

Laravel的JSON Schema文档的表单请求验证

安装

 composer require webtoolsnz/laravel-json-schema-request

用法

开发体验与Laravel的表单请求验证相同,但你只需编写JSON Schema

您可以使用make:json-request命令创建新的请求

artisan make:json-request MyJsonRequest

现在您将拥有新的请求类App\Http\Requests\MyJsonRequest,以下是一个基本的示例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,
        ];
    }
}

一旦您有了JsonSchemaRequest对象,您只需要在控制器方法中对请求进行类型提示。在调用控制器方法之前,会对传入的表单请求进行验证。

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

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

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件