让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 addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
PHP面向对象精要总结
Nov 07 PHP
php设置静态内容缓存时间的方法
Dec 01 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
PHP实现过滤各种HTML标签
May 17 PHP
php计算整个目录大小的方法
Jun 01 PHP
使用URL传输SESSION信息
Jul 14 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
php微信开发自定义菜单
Aug 27 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
PHP 模拟登陆功能实例详解
Sep 10 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
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
php二维码生成
2015/10/19 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
微信小程序实现全国机场索引列表
2018/01/31 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python使用opencv读取图片的实例
2017/08/17 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
实习鉴定范文
2013/12/19 职场文书
大学生创业计划书的格式要求
2013/12/29 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
真诚的求职信
2014/07/04 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
端午节寄语2015
2015/03/23 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
宇宙与人观后感
2015/06/05 职场文书
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js