让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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
xajax写的留言本
Nov 25 PHP
php mysql Errcode: 28 终极解决方法
Jul 01 PHP
php 数学运算验证码实现代码
Oct 11 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
May 13 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
解决php扩展安装不生效问题
Oct 25 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
thinkphp控制器调度使用示例
2014/02/24 PHP
php实现httpRequest的方法
2015/03/13 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
Node.js事件驱动
2015/06/18 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
python如何重载模块实例解析
2018/01/25 Python
简单实现python聊天程序
2018/04/01 Python
对python3新增的byte类型详解
2018/12/04 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
python sqlite的Row对象操作示例
2019/09/11 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
房产买卖委托公证书
2014/04/04 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
python Polars库的使用简介
2021/04/21 Python