使用 Dingo API 扩展包快速构建 Laravel RESTful API(六)—— 转化器及响应构建器的高级使用

转化器的高级功能 除了我们上篇教程介绍的一些基本使用之外,还可以通过传递额外的参数实现一些更高级的转化器功能。 资源键 我们可以在响应构建器的 item、collection 或 paginator 方法传入一个参数数组作为第三个参数,在这个数组中,可以通过 key 传入 Fractal 资源的类型标识: return $this->item($task, new TaskTransfo...

使用 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从入门到精通 ] 测试系列 —— 基于 Coding + Jenkins 实现 Laravel 项目的持续集成

前面两篇教程我们陆续介绍了基于 Github 代码仓库集成 CircleCI 和 Travis CI 实现 Laravel 项目的持续集成,今天我们继续介绍如何通过 Jenkins 实现类似的自动构建和测试。 相较于前两种持续集成系统,Jenkins 没有在 Github Marketable 上提供第三方应用,我们日常使用的话通常需要自己在独立服务器上安装并进行运维,你可以参考官方文档...

[ Laravel从入门到精通 ] 测试系列 —— 基于 Github + Travis CI 实现 Laravel 项目的持续集成

在上一篇教程中,学院君介绍了如何在 Github 中集成 CircleCI 实现 Laravel 项目的持续集成,今天,我们基于介绍如何在 Github 中集成 TravisCI 实现 Laravel 项目的持续集成(构建、测试流程自动化),相较于 CircleCI,Travis CI 与 Github 集成更加友好,并且针对开源项目,Travis CI 完全免费,所以推荐在开源项目中使...