使用 Dingo API 扩展包快速构建 Laravel RESTful API(十)—— 路由访问频率限制

所谓频率限制指的是指定时间内允许特定客户端针对单个路由发起请求的次数,也可以通过节流(throttle)这个术语来描述该行为,我们可以通过一个节流器来定义时间范围和请求次数,然后在需要限制访问频率的路由上应用这个节流器进行校验,显然,在 Laravel 中可以通过中间件来实现这个操作。 在 Dingo API 中,我们有两种方式来实现路由访问频率限制,一种是通过 Laravel 框架自带...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(九)—— API 认证实现(下)

在上篇教程中,我们介绍了如何通过 HTTP 基本认证和 JWT 认证实现 Dingo API 的认证,这篇教程,学院君将会给大家介绍如何在 Dingo API 中基于 OAuth 2.0 和自定义认证驱动实现 API 认证。 OAuth 2.0 认证 和 Laravel Passport 一样,Dingo API 的 OAuth 2.0 认证基于第三方扩展包 league/oauth2-...

使用 Dingo API 扩展包快速构建 Laravel RESTful API(七)—— 错误及异常处理

错误响应 在 Dingo API 中,你可以使用响应构建器支持的多种错误方法生成错误响应: // 通用的错误响应,包含错误消息和状态码 return $this->response->error('404 Not Found', 404); // 返回 404 Not Found 响应,等同于上述返回 404 状态码的错误响应 return $this->response->error...

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

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

[ Laravel从入门到精通 ] 请求与响应系列 —— 异常处理篇之异常信息报告、渲染及自定义处理

上篇教程学院君大致介绍了 Laravel 异常处理底层原理,今天我们来详细介绍下进行异常处理时如何报告和渲染异常信息。 异常信息的报告 通过上篇教程的介绍,你应该知道 Laravel 是通过系统注册的异常处理器提供的 report 方法来报告异常,那么我们就来看看系统自带的异常处理器是如何定义该方法的,如果你要自定义异常报告机制的话,也可以参考该方法的实现。该方法的源码位于 vendor...

[ Laravel 5.8 文档 ] 官方扩展包 —— 全文搜索解决方案:Laravel Scout

简介 Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案。通过使用模型观察者,Scout 会自动同步更新模型记录的索引。 目前,Scout 通过 Algolia 驱动提供搜索功能,不过,编写自定义驱动很简单,你可以很轻松地通过自己的搜索实现来扩展 Scout。 注:Algolia 是一个托管式的全文搜索引擎,我们可以通过其提供的 API ...

[ Laravel 5.8 文档 ] 数据库操作 —— 分页

简介 在其他框架中,分页可能是件非常痛苦的事,Laravel 让这件事变得简单、易于上手。Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的、易于使用的、基于数据库结果集的分页。分页器生成的 HTML 兼容 Bootstrap CSS 框架。 基本使用 基于查询构建器进行分页 有多种方式实现分页功能,最简单的方式就是使用查询构建器或 Eloqu...

[ Laravel 5.8 文档 ] 进阶系列 —— 通知

简介 除了支持发送邮件之外,Laravel 还支持通过多种传输通道发送通知,这些通道包括邮件、短信(通过 Nexmo)以及 Slack 等。通知可以存储在数据库以便后续在 Web 界面中显示。 通常,通知都是很短的、用于告知用户应用中所发生事件的消息。例如,如果你在开发一个计费应用,则需要通过邮件或短信等渠道给用户发送“账单支付”通知。 创建通知 在 Laravel 中,每个通知都以单独...

[ Laravel 5.8 文档 ] 进阶系列 —— 文件存储

简介 Laravel 基于 Frank de Jonge 开发的 PHP 包 Flysystem 提供了强大的文件系统抽象层。Laravel 集成 Flysystem 以便使用不同驱动简化对文件系统的操作,这些驱动包括本地文件系统、Amazon S3 以及 Rackspace 云存储。此外,在这些存储选项之间切换非常简单,因为对不同系统而言,API 是一致的。 配置 文件系统配置文件位于...

[ Laravel 5.8 文档 ] 进阶系列 —— 缓存

配置 Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 开箱支持主流的缓存后端如 Memcached 和 Redis 等。 缓存配置文件还包含其他文档化的选项,确保仔细阅读这些选项。默认情况下,Laravel 被配置成使用文件缓存(file 驱动),这会将序列化数据和缓存...