让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 相关文章推荐
discuz安全提问算法
Jun 06 PHP
php框架Phpbean说明
Jan 10 PHP
php5数字型字符串加解密代码
Apr 24 PHP
PHP队列用法实例
Nov 05 PHP
PHP通过API获取手机号码归属地
May 28 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
Laravel5中防止XSS跨站攻击的方法
Oct 10 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
PHP 文件上传后端处理实用技巧方法
Jan 06 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
PHP清除缓存的几种方法总结
Sep 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
第六节--访问属性和方法
2006/11/16 PHP
MySQL修改密码方法总结
2008/03/25 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
php解决安全问题的方法实例
2019/09/19 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
信息工作经验交流材料
2014/05/28 职场文书
学校四群教育实施方案
2014/06/12 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
先进人物事迹材料
2014/12/29 职场文书
国家助学金受助感言
2015/08/01 职场文书
六一亲子活动感想
2015/08/07 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python