Kit 史蒂夫麦克杜格尔 是一个基于 Laravel API 的入门套件,围绕基于令牌的身份验证、API 文档和安全优先的默认设置构建。它面向希望为构建版本化 JSON API 提供一个结构化起点,而无需从头开始配置所有内容的开发者。
入门
克隆仓库,安装依赖项,然后运行安装脚本:
作曲家
安装作曲家
跑步
设置php
工匠
服务
这
composer run setup
命令副本
.env.example
到
.env
生成应用程序密钥,并对本地 SQLite 数据库运行迁移。
API架构
Kit 采取了一些刻意的建筑设计立场:
- 没有全球
/api前缀 — 路由直接进行版本控制,例如/v1/auth/login - 仅限可调用控制器
每个控制器都是一个
__invoke方法 - 表单请求验证
— 请求负载在专用环境中进行验证。
FormRequest类,以及带有 DTO 风格有效负载类的类app/Http/Payloads/V1 - JSON:API 资源格式 — 响应遵循实体数据的一致结构
验证
九条路由处理完整的身份验证生命周期:
- 注册和登录(均通过 Laravel Sanctum 返回令牌)
/v1/auth/me(需要 Bearer 代币)- 通过签名 URL 进行电子邮件验证。
- 密码重置功能支持防枚举响应(无论电子邮件是否存在,都返回相同的响应)。
安全默认设置
该套件包含多个开箱即用的安全默认设置:
- 用户记录的 ULID 主键
- 可配置的身份验证端点预定义速率限制
AppServiceProvider - 强制的
Content-Type: application/json对写入请求的强制执行 - 强化响应头,包括
X-Content-Type-Options: nosniff,X-Frame-Options: DENY, 和Referrer-Policy: no-referrer - 请求 ID 跟踪
- 敏感操作的审计日志记录
- 和更多
Sunset 中间件
套件还包括
Sunset
用于逐步弃用 API 端点的中间件。您可以将其直接应用于路由,并传入三个参数:弃用日期、替代 URL 以及用于控制强制执行的布尔值:
路线
::
中间件
(
'sunset:2027-01-01,https://api.acme.com/v2/auth/login,true'
)
->
邮政
(
'/v1/auth/login'
,
登录控制器
::班级
(英文):
当端点仍然处于活动状态时,中间件会追加
Deprecation
,
Sunset
, 和
Link
在每个响应中添加(后续版本)标头,以便 API 客户端可以检测到弃用并进行相应的规划。一旦停用日期过去且强制执行生效,端点将返回
410 Gone
。
文档
API 文档是使用以下方式生成的: 隶 注解是基于属性的,而不是基于文档块的,并且该设置会在文档旁边生成 OpenAPI 规范。
本土化
Kit尊重
Accept-Language
请求头并以以下内容响应:
Content-Language
标头。支持的语言环境默认为
en
和
es
,翻译文件位于
lang/en/api.php
和
lang/es/api.php
。
工具
该项目使用 Pest 进行测试,PHPStan 进行静态分析,Pint 进行代码格式化,以及 Rector 进行自动化重构。GitHub Actions 工作流会在每次推送时运行 CI 测试,应用每日依赖项更新,并运行安全扫描。
composer audit
还有吉特莱克。
要求
- PHP 8.5+
- Laravel 12
- SQLite(用于本地开发;可配置为其他数据库)
访问 juststeveking/kit 在 GitHub 上浏览源代码并了解更多信息。





