让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 相关文章推荐
xml在joomla表单中的应用详解分享
Jul 19 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
php目录操作实例代码
Feb 21 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
PHP实现图片上传并压缩
Dec 22 PHP
php如何修改SESSION的生存存储时间的实例代码
Jul 05 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
基于PHP实现发微博动态代码实例
Dec 11 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 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
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
PHP中读写文件实现代码
2011/10/20 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
gulp解决跨域的配置文件问题
2017/06/08 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
python re模块findall()函数实例解析
2018/01/19 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
Python数据类型之List列表实例详解
2019/05/08 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
Python序列化pickle模块使用详解
2020/03/05 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
大学生求职简历的自我评价范文
2013/10/12 职场文书
媒体宣传策划方案
2014/05/25 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
2014年测量员工作总结
2014/12/12 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
Java基于字符界面的简易收银台
2021/06/26 Java/Android
MySQL创建管理LIST分区
2022/04/13 MySQL