让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 16 PHP
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
PHP对象链式操作实现原理分析
Oct 09 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 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递归算法的详细示例分析
2013/02/19 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
原生JavaScript实现刮刮乐
2020/09/29 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
flask实现验证码并验证功能
2019/12/05 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
为什么说python适合写爬虫
2020/06/11 Python
如何通过命令行进入python
2020/07/06 Python
python使用列表的最佳方案
2020/08/12 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
酒店应聘自荐信
2013/11/09 职场文书
中班开学寄语
2014/04/04 职场文书
团日活动总结书
2014/05/08 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书