让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 采集书并合成txt格式的实现代码
Mar 01 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
PHP实现根据设备类型自动跳转相应页面的方法
Jul 24 PHP
PHP中strtr字符串替换用法详解
Nov 26 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
Dec 18 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
php封装json通信接口详解及实例
Mar 07 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
thinkPHP框架实现的简单计算器示例
Dec 07 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
PHP并发场景的三种解决方案代码实例
Feb 27 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中MVC的开发经验分享
2012/05/17 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
JS面向对象编程详解
2016/03/06 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
vue+element+Java实现批量删除功能
2019/04/08 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python中List.count()方法的使用教程
2015/05/20 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
Python实现多进程的四种方式
2019/02/22 Python
python多进程读图提取特征存npy
2019/05/21 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
记者岗位职责
2014/01/06 职场文书
关于诚信的活动方案
2014/08/18 职场文书
生日赠语
2015/06/23 职场文书
js之ajax文件上传
2021/05/13 Javascript