让Laravel API永远返回JSON格式响应的方法示例


Posted in PHP onSeptember 05, 2018

json格式

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。 JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。

本文将给大家详细介绍关于让Laravel API永远返回JSON格式响应的方法,下面话不多说了,来一起看看详细的介绍吧

让Laravel API永远返回JSON格式响应的方法示例

当你在编写完全为 API 服务的 Laravel 应用时,你希望所有响应都是 JSON 格式的,而不是例如说授权错误会重定向到 /home 或 /login,最终重定向会变成 InvalidArgumentException: Route [login] is not defined. 的视图。

下面这个简单的方案,可以让你的 Laravel 应用优先响应为 JSON 格式。

第一步、编写 BaseRequest

首先我们需要构建一个 BaseRequest 来重写 Illuminate\Http\Request ,修改为默认优先使用 JSON 响应:

app/Http/Requests/BaseRequest.php

<?php
namespace 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 ,包括错误和异常。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
PHP 程序员也要学会使用“异常”
Jun 16 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
php 启动报错如何解决
Jan 17 PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 PHP
ThinkPHP关于session的操作方法汇总
Jul 18 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
php删除数组中重复元素的方法
Dec 22 PHP
详解PHP序列化和反序列化原理
Jan 15 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 #PHP
PHP使用pdo实现事务处理操作示例
Sep 05 #PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 #PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 #PHP
PHP时间处理类操作示例
Sep 05 #PHP
PHP命名空间与自动加载类详解
Sep 04 #PHP
ThinkPHP框架实现定时执行任务的两种方法分析
Sep 04 #PHP
You might like
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
初识PHP中的Swoole
2016/04/05 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
prototype Element学习笔记(篇一)
2008/10/26 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
python如何在循环引用中管理内存
2018/03/20 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
警示教育活动总结
2014/05/05 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
节电标语大全
2014/06/23 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
2014年就业工作总结
2014/11/26 职场文书
报案材料怎么写
2015/05/25 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
《刷子李》教学反思
2016/02/20 职场文书