Building a REST API with Laravel? Standardise your responses with JSend
Recently, I was working on a project that needed me to build an API in Laravel. I know how painful it is to work with APIs that are poorly structured, so I decided to adopt JSend for my API responses. JSend basically tries to ensure that the API consumer always knows what to expect in an API response, by defining consistent response formats for
fail , and
error states. Read more about it here.
I quickly tired of writing stuff like this:
$post = Post::create($details); $response = ["status" => "success", "data" => $post->toArray()]; return response(json_encode($response), 200, ["Content-Type" => "application/json"]);
So I created some helpers to help me out with that. Now all I need to do is
$post = Post::create($details); return jsend_success($post);
For error responses:
And for failures (bad requests):
$data = ["title" => "title is required"]; return jsend_fail($data);
I published the helpers in a package available on Packagist. Just run
composer install shalvah/laravel-jsend to use them.
Please check out the source on GitHub, star, share and contribute. I hope it helps improve your productivity. Thanks!
Hey👋. I write about interesting software engineering challenges. Want to get updated when I publish new posts? Just visit tntcl.app/blog.shalvah.me.
(Confession: I built Tentacle.✋ It helps you keep a clean inbox by combining your favourite blogs into one weekly newsletter.)