Как проверить входящий JSON: запрос API с помощью FormRequest - PullRequest
1 голос
/ 29 марта 2019

Я создал сервер API с помощью Laravel и настроил FormRequests для обработки входящих запросов к серверу. Все работало хорошо. Сейчас я пытаюсь переключить свой сервер API в соответствии со спецификацией https://jsonapi.org/, и я не имею ни малейшего понятия, как переключать проверку для обработки сложной входящей (POST, PUT, PATCH) структуры JSON.

Единственное решение, которое я нашел работающим, - это использовать в каждом расширенном классе FormRequest правила, следуя шаблону, показанному в блоке кода.

/**
 * Get the validation rules that apply to the request.
 */
public function rules(): array
{
    return [
        'data' => 'required',
        'data.type' => 'required|string',
        'data.id' => 'sometimes|required|string',
        'data.attributes' => 'sometimes|required',
        'data.attributes.name' => 'string',
        // ...
    ];
}

/**
 * Get data to be validated from the request.
 */
protected function validationData(): array
{
    return $this->json()->all();
}

Решение, которое я придумал, выполняет свою работу, но я ищу более СУХОЕ решение, так как это решение становится очень грязным, если я проверяю более сложную и вложенную структуру JSON.

...