使用 Dingo API 扩展包快速构建 Laravel RESTful API(五)—— 转化器篇(下):结合响应构建器构建 JSON 响应

Dingo API 提供的转化器(Transformer)正是基于 Fractal 对响应数据格式进行一致性的转化。 在 Dingo 中定义的转化器类和 Fractal 中完全一致,Dingo 仅仅是在响应实现时对 Fractal 做了一层封装而已,所以我们可以完全基于上篇教程创建的转化器类进行本篇教程的演示。 为模型类注册转化器 在 Dingo API 中使用转化器最简单的方式就是先注...

[ Laravel从入门到精通 ] 测试系列 —— 在 Laravel 中基于 PHPUnit 进行代码测试:HTTP 测试篇(上)

底层实现 上一篇教程我们介绍了在 Laravel 框架中如何基于 PHPUnit 编写单元测试,其实单元测试基本上使用的都是 PHPUnit 框架提供的原生方法,今天我们来看下 Laravel 如何基于 PHPUnit 实现 HTTP 功能测试。 Laravel 框架开箱为我们提供了一个功能测试用例示例 tests/Feature/ExampleTest.php: <?php n...

[ Laravel 5.8 文档 ] 基础组件 —— HTTP 响应

创建响应 字符串 & 数组 所有路由和控制器处理完业务逻辑之后都会返回一个发送到用户浏览器的响应,Laravel 提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串,框架会自动将这个字符串转化为一个完整的 HTTP 响应: Route::get('/', function () { return 'Hello World'; }); 除了从路由或控...

[ Laravel 5.8 文档 ] 基础组件 —— HTTP 请求

访问请求实例 在控制器中获取当前 HTTP 请求实例,需要在构造函数或方法中对 Illuminate\Http\Request 类进行依赖注入,这样当前请求实例会被服务容器自动注入:...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 基于 CAS 实现通用的单点登录解决方案(二):CAS 客户端搭建及单点登录测试

上篇教程学院君给大家介绍了 CAS 单点登录原理以及 CAS Server 端搭建,这篇教程我们书接上篇,着手客户端测试应用搭建和完整单点登录流程演示。 客户端配置 首先我们创建两个用于单点登录测试的客户端 Web 应用 testapp 和 otherapp(如果对应应用之前已经存在,则无需重复创建),下面我们以 testapp 为例,进行初始化配置和演示,otherapp 依葫芦画瓢即...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 基于 CAS 实现通用的单点登录解决方案(一):CAS 原理及服务端搭建

什么是 CAS 上篇教程我们介绍了单点登录,以及如何基于 Cookie 实现简单的单点登录,这篇教程,我们将基于 CAS 实现更加通用的单点登录解决方案,不再受域名约束。 CAS(Central Authentication Service)是耶鲁大学的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方案。采用 CAS 最大的因素是从安全性角度来考虑,用户在 CAS 服务...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Cookie 实现基于 Session 的单点登录

单点登录及实现思路 单点登录(Single Sign On),简称为 SSO,意思是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的其它应用系统。一般常用于同一家公司的不同子系统之间的登录认证。 单点登录有多种实现方式,这里我们只介绍两种,一种是基于 Cookie 凭证,这种方式适用于子系统之间主域名一致,因为只有这样才能让不同子系统之间共享 Cookie;另一种是通过 CA...

[ Laravel 从入门到精通 ] 用户认证与授权系列 —— 通过 Passport 实现 API 请求认证:单页面应用篇

OAuth 与 Passport 前面我们介绍的用户认证都是基于 Web 请求路由的,本质上都是基于 Session 实现的用户认证。在前后端分离大行其道的时代(这里提到的前后端分离包括前端与后端、App与后端、小程序与后端),基于 API 请求的认证也非常常见,但是我们知道常见的 Session 技术都是结合客户端 Cookie 来实现的,从后端剥离出去的前端应用无法通过 API 请求...

[ Laravel 5.7 文档 ] 基础组件 —— Session

简介 由于 HTTP 协议本身是无状态的,上一个请求与下一个请求无任何关联,为此我们引入 Session 来存储用户请求信息以解决特定场景下无状态导致的问题(比如登录、购物)。Laravel 通过简洁的 API 统一处理后端各种 Session 驱动,目前开箱支持的流行后端驱动包括 Memcached、Redis 和数据库。 学院君注:Laravel 并没有使用 PHP 内置的 Ses...

[ Laravel 5.7 文档 ] 基础组件 —— HTTP 响应

创建响应 字符串 & 数组 所有路由和控制器处理完业务逻辑之后都会返回一个发送到用户浏览器的响应,Laravel 提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串,框架会自动将这个字符串转化为一个完整的 HTTP 响应: Route::get('/', function () { return 'Hello World'; }); 除了从路由或控...