Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
I’ve recently started working on some small projects that will only use the backend portion of Laravel. One of the first things we bump into is the Authentication Exception that tries to redirect to /home or /login. That redirection becomes another exception: InvalidArgumentException: Route [login] is not defined.. Here is an extreme simple solution for when you only want to work with API Responses.
1- Write a new BaseRequest
By extending Laravel Request object, we can override the methods used by the framework that decides whether to give a redirect response or a JSON response to always prefer JSON.
2- Swap the implementation
Inside public/index.php we can find where Laravel builds the Request object. Let’s swap \Illumiate\Http\Request with our new BaseRequest class.
$response = $kernel->handle( $request = \App\Http\Requests\BaseRequest::capture());
3- Done!
As simple as this, now any HTTP Request will be treated as it wants application/json as the Response. No more Redirect Exceptions.
Update
Alexander Lichter have a killer one-line middleware to achieve the same result. Check out his solution here.
Always return JSON with Laravel API was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.