lazerg / laravel-response-helpers
Response helpers for laravel
Installs: 2 833
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: ^7.3|^8.0|^8.1|^8.2|^8.3
- illuminate/database: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/http: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/testing: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
README
Helpers to send API responses in same structured format. Response is always includes message and data.
{ "message": "Successfully updated", "data": { "id": 1, "name": "John Doe", "email": "johndoe@example.com" } }
Installation
Simply require the package via composer into your Laravel API.
composer require lazerg/laravel-response-helpers
After that require the trait \Lazerg\LaravelResponseHelpers\ResponseHelpers
inside of your main
controller app/Http/Controllers/Controller.php
;
Usage without resourceful response.
# Response with success message $this->responseMessage('Successfully updated'); # Response with error message $this->responseMessage('Failed to update', 400); # Successful response with data $this->responseData($user); # Error response with data $this->responseData($user, 400); # Response with success message and data $this->response('Successfully updated', $user); # Response with error message and data $this->response('Failed to update', $user, 400);
Usage with resourceful response
# Success response with resourceful data $this->responseResourceful(UsersResource::class, $users); # Error response with resourceful data $this->responseResourceful(UsersResource::class, $users, 400); # Success response with resourceful message and data $this->responseJsonResourceful(UsersResource::class, $users, 'Successfully updated'); # Error response with resourceful message and data $this->responseJsonResourceful(UsersResource::class, $users, , 'Failed to update', 400);
Testing
$this->getJson(route('users.index')) ->assertOk() ->assertJsonCountData(5) # amount of $users->first()->posts ->assertJsonCountData(2, '0.posts') ->assertJsonStructureData([ ['id', 'name', 'email'] ]); ->assertJsonData([ 'id' => 1, 'name' => 'John Doe', 'email' => 'johndoe@example.com' ]);