路由管理是HTTP Web Server开发的基础,我们尽可能地通过详尽的示例让您能更好理解本章节。

  • No labels

3 Comments

  1. 没有生成 URL 的方法么?比如在模板中要生产某个路由对应的 URL, 这样及时后期路由规则变了,模板中的 URL 写法可以不变。

  2. BUG!BUG!BUG!!!!!
    我之前用的2.4.2,后来升级为2.5.5之后,路由请求有个BUG,我的第一次请求带了Keywords,第二次请求没有带,2.4.2中req.Keywords值为nil,而2.5.5中,值为上次请求的值
    之所以有这个BUG,我看到在2.5.5中复用了前一次req的指针,而2.4.2每次请求的req都是一个新的指针,这个本来应该是对内存的优化,但是应该在将请求参数序列化到原指针的时候先清空一下内容

    下面这个是我controller绑定的请求结构体:
    type CaseSecurityGetPageReq struct {
    g.Meta `path:"/cases/security/pager" method:"get" tags:"ApiV1/Cases/security" summary:"获取治安案件分页列表"`
    global.SqlFilter
    Keywords *global.QueryKeywords `json:"keywords"`
    DateRange *global.QueryDateRange `json:"date_range"`
    }
    //这个是绑定的方法
    func (c *caseSecurityController) GetPage(ctx context.Context, req *v1.CaseSecurityGetPageReq) (res *v1.CaseSecurityGetPageRes, err error) {
       //2.5.5 第二次请求中如果没有传入keywords,那么会保留前一次的值
    //2.4.2 这个是正常的
    }

    //路由绑定
    group.Bind(controller.CaseSecurityController)

    1. 我看到了新版本2.5.6, 这个版本中已经修复了!!!!req每次还是一个新指针~~~