Validation¶
HiveApi internally uses the powerful Laravel validation system. However, HiveApi
validations must be defined within the Requests
components, since every request might have different rules.
The Validations rules are automatically applied, once injecting the Request in the Controller. Requests helps validating data sent to the API, accessibility, ownership and more…
Request¶
Consider the following example for a validation within a Request
<?php
namespace App\Containers\User\UI\API\Requests;
use App\Ship\Parents\Requests\Request;
class RegisterUserRequest extends Request
{
/**
* @return array
*/
public function rules()
{
return [
'email' => 'required|email|max:200|unique:users,email',
'password' => 'required|min:20|max:300',
'name' => 'required|min:2|max:400',
];
}
}
Using a Request (with Validation) within a Controller¶
Usage from Controller Example:
<?php
public function registerUser(RegisterUserRequest $request)
{
// if this method is called, the Request was successfully validated!
$user = Hive::call(RegisterUserAction::class, [$request->toTransporter()]);
return $this->transform($user, UserTransformer::class);
}
Responses¶
If the Request data cannot be validated, the framework responds with an Exception
similar to this
{
"errors": {
"email": [
"The email field is required."
],
"password": [
"The password field is required."
]
},
"status_code": 422,
"message": "The given data failed to pass validation."
}