使用 Lumen 框架创建 REST API 实例教程

lumen-api

概述 Lumen是一个基于Laravel的微框架,主要用于小型应用和微服务,专注于性能和速度的优化,该框架一个重要的应用就是构建 REST API。 为什么用Lumen构建REST API Lumen访问速度非常快 每秒能够处理的请求数比Laravel更多 使用nikic/FastRoute取代Symphony,从而提升了性能 安装 & 配置 关于Lumen详细安装教程参考官方文…

[ Lumen 5.3 文档 ] 更多特性 —— 验证

Lumen

1、简介 Lumen提供了多种方法来验证应用输入数据。默认情况下,Lumen的控制器基类使用ProvidesConvenienceMethods trait,该trait提供了便利的方法通过各种功能强大的验证规则来验证输入的HTTP请求。 大多数情况下,Lumen中的验证实现和Laravel一样,可以通过完整的Laravel验证文档了解更多实现细节,但是两者之间还是有一些区别: 2、与L…

[ Lumen 5.3 文档 ] 更多特性 —— 单元测试

Lumen

1、简介 Lumen植根于测试,实际上,使用PHPUnit对测试提供支持是开箱即用的,并且测试配置文件phpunit.xml已经为应用设置好了。框架还提供了很多辅助函数从而允许你对应用进行更加富有表现力的测试。 tests目录中提供了一个ExampleTest.php文件,安装完新的Lumen应用后,只需简单在命令行运行phpunit即可运行测试。 测试环境 Lumen在测试时自动配置缓…

[ Lumen 5.3 文档 ] 更多特性 —— 服务提供者

Lumen

1、简介 服务提供者是Lumen应用启动的中心,你自己的应用以及所有Lumen的核心服务都是通过服务提供者启动。 但是,我们所谓的“启动”指的是什么?通常,这意味着注册对象,包括注册服务容器绑定、事件监听器、中间件甚至路由。服务提供者是应用配置的中心。 如果你打开Lumen自带的bootstrap/app.php文件,将会看到一个$app->register()调用,这里就是应用所…

[ Lumen 5.3 文档 ] 更多特性 —— 服务容器

Lumen

1、简介 Laravel 服务容器是一个用来管理类依赖和执行依赖注入的强大工具,所谓依赖注入指的是依赖类通过构造函数或“setter”方法注入到代码中。 2、与Laravel的不同之处 Lumen和Laravel框架使用同样的服务容器,所以关于服务容器的完整文档,请参考完整的Laravel服务容器文档。 访问容器 Laravel\Lumen\Application实例继承自Illumin…

[ Lumen 5.3 文档 ] 更多特性 —— 队列

Lumen

1、简介 Lumen队列服务为各种不同的后台队列驱动提供了统一的API。队列允许你延迟耗时任务(例如发送邮件)的执行,从而大幅提高web请求的响应速度。 和框架很多其他部分一样,Lumen的队列任务和Laravel的队列任务功能一致,所以,要了解更多Lumen队列任务细节,可以查看完整的Laravel队列文档。 配置 队列配置选项位于.env文件。 如果你想要完全自定义队列配置,则必须拷…

[ Lumen 5.3 文档 ] 更多特性 —— 事件

Lumen

1、简介 Lumen事件提供了简单的观察者模式实现,允许你订阅和监听应用中的事件。事件类通常存放在app/Events目录,监听器存放在app/Listeners。 2、和Laravel的区别 通常,Lumen中的事件函数和Laravel几乎一样,所以关于其使用可参考Laravel事件文档。Lumen也支持事件广播,从而允许你在客户端JavaScript中监听服务器端的事件。需要指出的是…

[ Lumen 5.3 文档 ] 更多特性 —— 错误 & 日志

Lumen

1、简介 开始一个新的Lumen项目的时候,错误和异常处理已经默认为你配置好了。此外,Lumen还集成了提供各种功能强大日志处理器的Monolog日志库。 2、配置 错误详情 配置文件.env中的APP_DEBUG配置选项控制浏览器显示的错误详情数量。 对本地开发而言,你应该设置环境变量APP_DEBUG值为true。在生产环境,该值应该被设置为false。 自定义Monolog配置 如…

[ Lumen 5.3 文档 ] 更多特性 —— 加密

Lumen

1、配置 在使用Lumen的加密器之前,应该在.env文件中设置APP_KEY选项为32位随机字符串。如果这个值没有被设置,所有Lumen加密过的值都是不安全的。 2、基本使用 加密 你可以使用Crypt门面对数据进行加密,所有加密值都使用OpenSSL和AES-256-CBC密码进行加密。此外,所有加密值都通过一个消息认证码(MAC)来检测对加密字符串的任何修改。 例如,我们可以使用e…

[ Lumen 5.3 文档 ] 更多特性 —— 数据库

Lumen

1、配置 在Lumen中连接数据库和运行查询都非常简单,目前Lumen支持四种数据库系统:MySQL、Postgres、SQLite和SQL Server。 你可以在配置文件.env中使用配置选项DB_*来配置数据库设置,例如驱动、主机、用户名和密码。 2、基本使用 注:如果你想要使用DB门面,应该取消bootstrap/app.php文件中$app->withFacades()调…