让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 相关文章推荐
基于文本的搜索
Oct 09 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
php查找任何页面上的所有链接的方法
Dec 03 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
PHP反向代理类代码
Aug 15 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
微信支付开发订单查询实例
Jul 12 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
在laravel框架中使用model层的方法
Oct 08 PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 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实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
Javascript如何实现扩充基本类型
2020/08/26 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
python 反向输出字符串的方法
2018/07/16 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
开工庆典邀请函范文
2014/01/16 职场文书
美德好少年主要事迹
2014/01/29 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
使用Java去实现超市会员管理系统
2022/03/18 Java/Android