用 ThinkPHP 8 构建 RESTful API 的几点实践
用 ThinkPHP 8 构建 RESTful API 的几点实践
最近在一个酒店管理系统项目里,技术栈锁定为 PHP 8.2 + ThinkPHP 8。单人六周交付 MVP,需要在「快」和「稳」之间找到平衡。下面几点是我沉淀下来的做法。
1. 用资源路由收敛接口
与其手写一堆 Route::get/post,不如直接上资源路由:
Route::resource('rooms', RoomController::class);
控制器里只保留 index / show / store / update / destroy 五个动作,前端对接时心智模型非常清晰。
2. 统一响应结构
所有接口返回同一套信封:
{
"code": 0,
"msg": "ok",
"data": { }
}
在中间件里把异常也收编成这个结构,前端就不需要为不同错误写多种分支。
3. 认证用双 Token
access_token 短时效(2h),refresh_token 长时效(14d),配合 Redis 做黑名单,登出即失效。
小经验:JWT 不要塞太多业务字段,只放 uid 和 jti,其余查库。
小结
分层清晰比炫技重要。下一期聊定价引擎 RateService 怎么在并发下单时防超卖。
