Laravel API 系列教程(三):使用 API Resource 来创建自己的 {JSON:API} 格式 API

 上一篇教程中我们通过 jwt-auth 实现了 Laravel 的 API 认证,认证过后就可以通过 http://apidemo.test/api/auth/user 接口访问当前用户信息: 可以看到上面的返回数据以原生格式返回,没有经过任何处理,甚至有可能包含敏感信息,我们当然可以处理之后再返回,一个两个接口还好,如果现实业务中面对成百上千个接口呢?这种处理方式显然不合适,不仅耗…

[ Laravel 5.6 文档 ] 安全系列 —— 重置密码

简介 想要快速实现该功能?只需要在新安装的 Laravel 应用下运行 php artisan make:auth(如果你已经执行过此命令,可忽略),然后在浏览器中访问 http://your-app.test/register 或者其他分配给应用的 URL,该命令会生成用户登录注册所需要的所有东西,包括密码重置! 大多数 Web 应用都提供了为用户重置密码的功能,Laravel 也不例…

[ Laravel 5.6 文档 ] 安全系列 —— 授权

简介 除了提供开箱即用的认证服务之外,Laravel 还提供了一个简单的方式来管理授权逻辑以便控制对资源的访问权限。和认证一样,在 Laravel 中实现授权很简单,主要有两种方式:Gate 和 Policy。 可以将 Gate 和 Policy 分别看作路由和控制器,Gate 提供了简单的基于闭包的方式进行授权,而 Policy 和控制器一样,对特定模型或资源上的复杂授权逻辑进行分组,…

[ Laravel 5.6 文档 ] Eloquent ORM —— 序列化

简介 当构建 JSON API 时,经常需要转化模型和关联关系为数组或 JSON。Eloquent 提供了便捷方法以便实现这些转换,以及控制哪些属性被包含到序列化中。 序列化模型 & 集合 序列化为数组 要转化模型及其加载的关联关系为数组,可以使用 toArray 方法。这个方法是递归的,所以所有属性及其关联对象属性(包括关联的关联)都会被转化为数组: $user = App\U…

[ Laravel 5.6 文档 ] Eloquent ORM —— API 资源类

简介 构建 API 时,在 Eloquent 模型和最终返回给应用用户的 JSON 响应之间可能需要一个转化层。Laravel 的资源类允许你以简单优雅的方式将模型和模型集合转化为 JSON 格式数据。 生成资源类 要生成一个资源类,可以使用 Artisan 命令 make:resource,默认情况下,资源类存放在应用的 app/Http/Resources 目录下,资源类都继承自 I…

[ Laravel 5.6 文档 ] Eloquent ORM —— 访问器和修改器

简介 访问器和修改器允许你在获取模型属性或设置其值时格式化 Eloquent 属性。例如,你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密,并且在 Eloquent 模型中访问时自动进行解密。 除了自定义访问器和修改器,Eloquent 还可以自动转换日期字段为 Carbon 实例甚至将文本转换为JSON。 访问器 & 修改器 定义访问器 要定义一个访问器,需…

[ Laravel 5.6 文档 ] Eloquent ORM —— 关联关系

简介 数据表经常要与其它表做关联,比如一篇博客文章可能有很多评论,或者一个订单会被关联到下单用户,Eloquent 让组织和处理这些关联关系变得简单,并且支持多种不同类型的关联关系: 一对一 一对多 多对多 远层一对多 多态关联 多对多的多态关联 定义关联关系 Eloquent 关联关系以 Eloquent 模型类方法的方式定义。和 Eloquent 模型本身一样,关联关系也是强大的查询…

[ Laravel 5.6 文档 ] Eloquent ORM —— 快速入门

简介 Laravel 内置的 Eloquent ORM 提供了一个美观、简单的与数据库打交道的 ActiveRecord 实现,每张数据表都对应一个与该表进行交互的模型(Model),通过模型类,你可以对数据表进行查询、插入、更新、删除等操作。 在开始之前,确保在 config/database.php 文件中配置好了数据库连接。更多关于数据库配置的信息,请查看文档。 定义模型 我们从创…

[ Laravel 5.5 文档 ] 安全系列 —— 在 Laravel 中实现对资源操作的权限控制

简介 除了提供开箱即用的认证服务之外,Laravel 还提供了一个简单的方式来管理授权逻辑以便控制对资源的访问权限。和认证一样,在 Laravel 中实现授权很简单,主要有两种方式:Gate 和 Policy。 可以将 Gate 和 Policy 分别看作路由和控制器,Gate 提供了简单的基于闭包的方式进行授权,而 Policy 和控制器一样,对特定模型或资源上的复杂授权逻辑进行分组,…

[ Laravel 5.5 文档 ] Eloquent ORM —— 将模型数据序列化为数组或 JSON

简介 当构建 JSON API 时,经常需要转化模型和关联关系为数组或 JSON。Eloquent 提供了便捷方法以便实现这些转换,以及控制哪些属性被包含到序列化中。 序列化模型 & 集合 序列化为数组 要转化模型及其加载的关联关系为数组,可以使用 toArray 方法。这个方法是递归的,所以所有属性及其关联对象属性(包括关联的关联)都会被转化为数组: $user = App\U…