让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学习之PHP表达式
Oct 09 PHP
PHP新手上路(四)
Oct 09 PHP
洪恩在线成语词典小偷程序php版
Apr 20 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
PHP与以太坊交互详解
Aug 24 PHP
用php如何解决大文件分片上传问题
Jul 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
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
动态控制Table的js代码
2007/03/07 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
vue多次循环操作示例
2019/02/08 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
python解析xml文件实例分析
2015/05/27 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
Python线性方程组求解运算示例
2018/01/17 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
Python进度条的制作代码实例
2019/08/31 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
电脑教师的自我评价
2013/12/18 职场文书
十佳护士获奖感言
2014/02/18 职场文书
奥利奥广告词
2014/03/20 职场文书
《金子》教学反思
2014/04/13 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
西岭雪山导游词
2015/02/06 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书