跳到主要内容

路由与路由组

如何注册一组资源路由?​

  • method: GET、POST、PUT、PATCH、DELETE 等 HTTP 方法;
  • path: 静态片段、命名参数和通配参数组成的匹配规则;
  • Handler chain: 路由组与路由中间件加上最终 Handler;
api := h.Group("/api/v1")
api.GET("/articles", listArticles)
api.POST("/articles", createArticle)
api.GET("/articles/:id", getArticle)
api.PUT("/articles/:id", updateArticle)
api.DELETE("/articles/:id", deleteArticle)

如何组织路由的公共规则?​

  • 路由组: 表达版本、资源域和共享中间件; 不承载业务逻辑;
  • 注册位置: 每个领域提供小型 Register 函数,main 只做组合;
  • 路径参数: 表达资源身份; 过滤、排序和分页放在 query;
  • 版本策略: 只在发生不兼容契约变化时增加 /v2;

如何验证路由匹配结果?​

  • 固定路径优先: 避免参数路由遮蔽特殊动作;
  • 方法明确: 不用 Any 代替清晰的资源语义;
  • 404: 没有路径匹配;
  • 405: 路径存在但方法不允许; 是否返回 405 取决于 Engine 配置;