当你在编写完全为 API 服务的 Laravel 应用时,你希望所有响应都是 JsON 格式的,而不是例如说授权错误会重定向到 /home 或 /login,最终重定向会变成 invalidargumentexception: Route [login] is not defined. 的视图。
推荐教程:《laravel教程》
下面这个简单的方案,可以让你的 Laravel 应用优先响应为 JsON 格式。
第一步、编写 BaseRequest
首先我们需要构建一个 BaseRequest 来重写 Illuminate\http\Request ,修改为默认优先使用 JsON 响应:
app/http/Requests/BaseRequest.PHP
<?PHPnamespace App\http\Requests;use Illuminate\http\Request;class BaseRequest extends Request{ public function expectsJson() { return true; } public function wantsJson() { return true; }}
第二步、替换 BaseRequest
在 public/index.PHP 文件中,将 \Illumiate\http\Request 替换为我们的 BaseRequest,如下:
$response = $kernel->handle( $request = \App\http\Requests\BaseRequest::capture());
搞定!
现在所有的响应都是 application/Json ,包括错误和异常。
总结来自于社区 https://learnku.com/laravel/wikis/16069
以上是内存溢出为你收集整理的让 Laravel API 永远返回 JSON 格式响应全部内容,希望文章能够帮你解决让 Laravel API 永远返回 JSON 格式响应所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)