让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 相关文章推荐
PHP4实际应用经验篇(3)
Oct 09 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
Laravel框架实现利用监听器进行sql语句记录功能
Jun 06 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
浅谈如何提高PHP代码的质量
May 28 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的模板标签系统(一)
2006/09/05 PHP
PHP的面向对象编程
2006/10/09 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
2014迎新年晚会策划方案
2014/02/23 职场文书
读书活动实施方案
2014/03/10 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
高中学生评语大全
2014/04/25 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
经销商年会策划方案
2014/05/29 职场文书
给校长的一封检讨书
2014/09/20 职场文书
财务审计整改报告
2014/11/06 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript