Я создал сервер 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.