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

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

使用 Dingo API 扩展包快速构建 Laravel RESTful API(四)—— 转化器篇(上):Fractal 简介及其使用入门

转化器简介 Dingo API 中的转化器(Transformer)有点类似 Laravel 框架自带的API 资源类,都是用于对返回的响应数据进行格式化,通过转化器,你可以轻松实现将对象转化为数组,并支持整型和布尔类型之间的转化,以及分页结果和嵌套关联。 这篇教程我们主要讨论转化器在 Dingo API 中的使用,这里的转化器包括以下两层意思: 转化层(transformation ...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(三)—— 返回基本 JSON 响应

API 的核心功能就是获取请求并返回响应给客户端,响应的数据格式是多样的,比如 JSON、XML、HTML,目前比较通用的是返回 JSON 格式数据,返回响应的方式也是多样的,这取决于当前构建的 API 的复杂度以及对未来的考量。 快速入门 要返回 JSON 格式响应,最简单的方式是直接从控制器返回数组或对象,但不是每个响应对象都能保证格式正确,所以你要确保它们实现了 ArrayObje...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(二)—— 编写第一个 API 接口

在一些英文文档中,我们经常会看到类似 API Endpoint 这样的术语,其实,Endpoint 就是路由的另一种表述,当我们讨论 API 时,很多人习惯将访问的 API 路由看作 Endpoint。 版本分组 为了避免和 Laravel 主应用的路由混在一起,Dingo API 使用了自己的路由器,正因如此,我们首先需要获取对应的 API 路由器实例来创建 Endpoint(可以在 ...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(一)—— 安装配置篇

注:本系列文档适用于 Laravel/Lumen 5.5+ 版本。 Dingo API 提供了一整套工具以便帮助开发者快速构建遵循 REST 规范的 API 接口。这些工具包括: 内容协商 多种认证适配器 API 版本 访问频率限制 响应数据格式转化 错误及异常处理 内部请求 生成 API 文档 1、安装 安装该扩展包之前需要保证已经安装以下程序: Laravel/Lumen 5...

[ Laravel从入门到精通 ] 编写 JSON API —— 基于资源控制器和 API 资源类快速构建 API 接口

在上篇教程中学院君给大家简单介绍 RESTful 风格 API 的设计原则和最佳实践,接下来,我们将在 Laravel 项目中通过实例来演示如何编写遵循 RESTful 风格的 JSON API 接口。 注册遵循 REST 规范的 API 路由 其实我们之前在待办任务项目中已经将这样的 API 接口的骨架都搭建起来了,Laravel 框架对 RESTful 风格 API 支持非常友好,可...

[ Laravel从入门到精通 ] 编写 JSON API —— RESTful 风格 API 设计原则与最佳实践

概述 在移动互联网时代,Laravel 开发者日常接触最多的任务应该就是编写 JSON API 接口,基于 RESTful 风格或类 RESTful 风格,以便允许第三方应用/客户端应用与后台应用通过这些 API 接口进行交互。 在 Laravel 项目中实现 JSON API 非常简单,框架底层为此做了大量的工作,提供了大量相关的方法、与之相关的资源控制器、以及 API 资源类、API...

[ Laravel从入门到精通 ] 测试系列 —— 通过测试驱动开发构建待办任务项目(二):前端功能和浏览器测试篇

在上篇教程中,学院君已经完成了待办任务项目后端 API 接口的编写和功能测试,现在,我们开始编写 Vue 组件来实现前端的交互界面。 编写前端 Vue 组件 首先在 resources/js/components 目录新增一个 Vue 组件 TasksComponent.vue,并编写模板代码和脚本代码如下:...

[ Laravel从入门到精通 ] 测试系列 —— 通过测试驱动开发构建待办任务项目(一):后端接口和功能测试篇

本来打算写一篇通过 Laravel Dusk 测试前端 Vue 组件的教程,转念一想不如玩把大的,直接基于 Laravel + Vue 构建一个前后端分离的待办任务列表项目,然后在开发过程中通过功能测试用例测试后端 API 接口,通过浏览器测试用例测试前端 Vue 组件与后端的交互,同时引入数据库测试对增删改查进行测试,从而完成一个简单的、相对完整的测试驱动开发项目。 构建应用 创建新项...

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

我们继续在上一篇教程的基础上演示如何编写 HTTP 功能测试用例。 测试用户认证 Session 除了用于存储一次性验证错误信息和用户会话状态外,最主要的用途就是维护用户认证的状态,在 Laravel 中,可以通过框架提供的一系列断言方法对用户认证状态进行测试。 我们基于 Laravel 框架提供的认证脚手架中的路由进行测试,如果你还没有在测试项目中生成认证脚手架代码,运行如下 Arti...