让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 版本]
Mar 20 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
php 解析xml 的四种方法详细介绍
Oct 26 PHP
php插件Xajax使用方法详解
Aug 31 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 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 JSON 数据解析代码
2010/05/26 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
PHP 图片处理
2020/09/16 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
js 事件小结 表格区别
2007/08/13 Javascript
js加强的经典分页实例
2013/03/15 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
node.js中的fs.lchownSync方法使用说明
2014/12/16 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
python处理PHP数组文本文件实例
2014/09/18 Python
python生成器表达式和列表解析
2016/03/10 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
智能旅行箱:Horizn Studios
2018/04/30 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
仓管员岗位职责范文
2013/11/08 职场文书
《狐假虎威》教学反思
2014/02/07 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
安全生产目标责任书
2014/04/14 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server