当前位置: 首页 > news >正文

gin HTTP路由分析

gin 添加路由处理逻辑

TODO

gin HTTP请求处理调用链

ServeHTTP-> handleHTTPRequest-> (*node).getValue-> (*Context).Next

handleHTTPRequest

https://github.com/gin-gonic/gin/blob/9914178584e42458ff7d23891463a880f58c9d86/gin.go#L690

  1. engine.trees获取匹配HTTP Method的*node根节点。
    1.1 遍历路由树(类似于radixTree), 根据最长匹配不断deep, 知道确认叶子节点, 中间如果遇到节点类型为param, 则提取路径值作为value。如果路径是*, 则会把当前路径都作为value。
    例如: /test/:name路由, 中间会有个子节点的类型为param, path为:name, 如果接收到/test/client, 则会保存name -> client的映射作为value。
  2. 如果上述没有匹配到, 且engine.HandleMethodNotAllowed为true, 则会重新查找一遍HTTP Method不匹配, 但是路径匹配的节点, 如果匹配到, 则会响应HTTP Status Code: 405。
  3. 如果上述都没有匹配到, 则会调用engine.allNoRoute做一次处理, 如果没有通过engine.NoRoute()函数注册过, 则会响应HTTP Status Code: 404。
http://www.jsqmd.com/news/183039/

相关文章:

  • 《创业之路》-792-产品有哪些常见的关键技术指标? 个人有哪些关键的绩效指标?企业经验有哪些关键绩效指标? 给出示例
  • Sonic能否处理带噪音的音频输入?抗干扰能力测试
  • Sonic模型License变更预警:关注最新开源协议动态
  • 《代码大全2》观后感(八):测试——代码质量的“最后一道关卡”
  • python装饰器(一)
  • 《创业之路》-794-对于相同的现实问题,中底层管理者关注当下、内部、成本、效率、战术、营收、一次性;高层管理者关注未来、外部、资本、价值、战略、竞争性、持续性。
  • RTX 4090运行Sonic有多快?生成1分钟视频仅需XX秒
  • Iridescent:Day44
  • Sonic开发者社区活跃吗?国内外论坛资源汇总
  • Sonic数字人可用于元宇宙场景?虚拟形象生成新方向
  • Sonic项目使用PyCharm调试?远程解释器配置技巧
  • NOIP T4大学习
  • 导师推荐!2025继续教育AI论文平台TOP9测评
  • 天翼一号2020全量救砖包
  • 当所有团队都在All in AI,架构师应当All in什么?——重拾业务本质的工程克制
  • Sonic数字人服装更换功能?目前依赖图像预处理
  • Sonic生成失败报错怎么办?常见错误代码速查表
  • 壁仞科技登陆港股,开启国产算力自主新征程
  • Sonic数字人视频添加水印?FFmpeg命令行处理方案
  • Sonic能否与Blender联动?后期合成进阶玩法
  • Sonic能否识别情感语调?情绪感知嘴型变化测试
  • Sonic能否接入企业微信?构建内部数字人客服系统
  • Sonic模型训练过程揭秘:用了多少小时语音视频数据
  • 强烈安利10个AI论文平台,MBA论文写作必备!
  • Sonic能否支持VR头显输出?沉浸式交互初步探索
  • Sonic能否生成双人对话视频?多角色协同挑战
  • 永磁同步电机(PMSM)的转速环控制技术:模糊滑模控制的实现与应用
  • 如何评估Sonic生成质量?PSNR、SSIM指标测试结果
  • Sonic生成横屏视频最佳实践:16:9构图美学
  • FPGA实现MIL - STD1553B协议源码解析:通用且强大的通信利器