让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 相关文章推荐
谈谈PHP语法(5)
Oct 09 PHP
在PHP中使用与Perl兼容的正则表达式
Nov 26 PHP
可以在线执行PHP代码包装修正版
Mar 15 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
php 获取全局变量的代码
Apr 21 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
Apr 26 PHP
分享自定义的几个PHP功能函数
Apr 15 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
PHP的微信支付接口使用方法讲解
Mar 08 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
缓存技术详谈―php
2006/12/14 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
Python中关于字符串对象的一些基础知识
2015/04/08 Python
python绘制立方体的方法
2018/07/02 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
10的分与合教学反思
2014/04/30 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
学生检讨书
2015/01/27 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
教师旷工检讨书
2015/08/15 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫