让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 csv操作类代码
Dec 14 PHP
深入了解PHP类Class的概念
Jun 14 PHP
用来解析.htpasswd文件的PHP类
Sep 05 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
PHP中redis的用法深入解析
Feb 20 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
Dec 22 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 PHP
安装docker和docker-compose实例详解
Jul 30 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的memcache类分享(memcache队列)
2014/03/26 PHP
php中socket的用法详解
2014/10/24 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
Python 基础之字符串string详解及实例
2017/04/01 Python
浅析python协程相关概念
2018/01/20 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python实现图片添加文字
2019/11/26 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
校班主任推荐信范文
2013/12/03 职场文书
工业设计毕业生自荐信
2014/04/13 职场文书
2015年父亲节寄语
2015/03/23 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python