wt-health/laravel-json-schema-request

类似于 FormRequests,但用于验证 JSON-schema

v2.0.0 2023-06-28 03:29 UTC

This package is auto-updated.

Last update: 2024-08-29 23:29:13 UTC


README

CI Action Code Coverage Scrutinizer Code Quality

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

安装

 composer require wt-health/laravel-json-schema-request

使用方法

开发体验与 Laravel 的 Form Request Validation 相同,只是您需要编写一个 JSON Schema 而不是 Laravel 验证规则。

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

artisan make:json-request MyJsonRequest

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

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

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

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

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。