让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 相关文章推荐
php5 pdo新改动加载注意事项
Sep 11 PHP
php pki加密技术(openssl)详解
Jul 01 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
yii2 resetful 授权验证详解
May 18 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
php实现的错误处理封装类实例
Jun 20 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
PHP封装的非对称加密RSA算法示例
May 28 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 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
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
VueRouter导航守卫用法详解
2017/12/25 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
Django Highcharts制作图表
2016/08/27 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
货代行业个人求职简历的自我评价
2013/10/22 职场文书
体育教学随笔感言
2014/02/24 职场文书
财务主管岗位职责
2014/02/28 职场文书
年终晚会主持词
2014/03/25 职场文书
一岗双责责任书
2014/04/15 职场文书
卖房协议书样本
2014/10/30 职场文书
出差报告怎么写
2014/11/06 职场文书
爱心募捐感谢信
2015/01/22 职场文书
校车司机安全责任书
2015/05/11 职场文书
三八妇女节致辞
2015/07/31 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang