恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

后端只有一条路由:聊聊我的自定义 Dispatcher 设计

  • 首页
  • 资讯中心
  • /
  • 后端只有一条路由:聊聊我的自定义 Dispatcher 设计

相关资讯

Solaar:Linux上最强大的罗技设备管理工具终极指南 2026/7/31 2:04:34
GetQzonehistory:三步完成QQ空间历史说说完整备份的实用指南 2026/7/31 2:04:34
基于pytest+JSON Schema的数据驱动接口自动化测试实战 2026/7/31 2:04:34

最新资讯

Dify平台构建数据治理RAG知识库实战指南
FSAE燃油赛车传动系统
Stata Meta分析实战:从数据准备到结果解读全流程指南
多层感知机(MLP)实战:从GitHub项目Cool Cat解析神经网络基础
突破标准数独:不规则与变种数独的规则解析与进阶解题策略
GPT-5.6 Sol性能优化实测:代码生成与内存管理效率提升指南

今日推荐

从零开始的YOLO目标检测全流程:数据标注→模型训练→推理验证→结果可视化
为什么你的BERT微调总掉点?揭秘隐藏在PyTorch DataLoader里的3个数据泄露陷阱,上线前必须检查!
Ryujinx终极指南:免费在电脑上畅玩Switch游戏的完整教程

本周热门

G-Helper完整指南:免费开源工具彻底优化华硕笔记本性能
解决全部报错!OpenClaw Windows适配优化+网关修复教程
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

本月精选

后端只有一条路由:聊聊我的自定义 Dispatcher 设计

发布时间:2026/7/31 2:09:34
后端只有一条路由:聊聊我的自定义 Dispatcher 设计 前两篇聊了背单词小程序「优词记 Pro」的整体架构和请求层封装今天说说后端一个比较激进的设计整个项目的路由文件只有一行。路由文件的痛常规做法是每个接口注册一条路由。项目小的时候没问题接口一多路由文件就变成几百行的流水账改个接口要同时动路由和控制器命名风格慢慢漂移review 时还得对着路由表找实现。既然我的接口 URL 本来就有强规律为什么不让规律本身当路由于是全站只留一条通配路由所有请求交给一个 Dispatcher 统一调度Router::addRoute([GET,POST,PUT,DELETE], /{name:.}, Dispatcher::class . handle);三条约定替代整张路由表约定一URL 前缀分端。/admin/*走管理端控制器目录/user/*走小程序端/common/*两端通用。不同端的认证策略也随前缀确定——管理端 JWT 有效期 7 天小程序端 365 天通用接口两种身份都放行。约定二HTTP 方法映射方法前缀。GET →get*POST →create*PUT →update*DELETE →delete*。语义直接编码在方法名里看到createOrder就知道它只接受 POST。约定三URL 段转驼峰拼方法名。kebab-case 的 URL 段转成 camelCase 后匹配控制器和方法比如GET /admin/user/list-page会命中User::getListPage()。找不到控制器时还有一次目录归约兜底Foo\Bar未命中就回退找Foo\Bar\Index。请求命中GET /admin/user/list-pageAdminPort\User::getListPage()POST /user/collectionUserPort\Collection::create()DELETE /admin/advertAdminPort\Advert::delete()新增一个接口只需要在对应目录放好控制器、按前缀命名方法路由自动就通了git diff 里只有一个文件。认证和权限也挂在约定上Dispatcher 找到目标方法后先过认证再执行。默认全部接口要求登录例外用#[NoNeedLogin]注解显式声明需要细粒度权限的方法加#[Permission([manage-advert-add])]由注解在调度时统一校验。权限、日志这些横切逻辑都收敛在调度层业务控制器保持干净。代价与取舍约定路由不是免费的。两点代价说在前面一是新人要先学约定不看文档很难从 URL 直接反查代码位置所以约定必须写进 README 并且从不破例二是灵活性受限比如当前实现不允许向方法传位置参数多余的 URL 段直接 404——这是有意为之宁可严格也不要歧义。对单人或小团队项目用这点学习成本换掉整张路由表的维护成本我认为很值。明天写写这套后端更「离经叛道」的部分不写 migration直接从数据库 schema 反向生成 Entity 和 Model 代码感兴趣的可以关注。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号