gin的是路由算法其实就是一个Trie树(也就是前缀树)
一、注册路由
1、普通注册
2、使用中间件
3、使用Group(路由组)
在预处理阶段
1、在调用中间件的时候, 是将某个路由的handler处理函数和中间件的处理函数都放在了Handlers的数组中
2、在调用Group的时候, 是将路由的path上面拼上Group的值. 也就是/user/:name, 会变成v1/user:name
最后都需要handle的addRoute注册到engine的路由树上。
addRoute()
gin的路由树算法是一棵前缀树。不过并不是只有一颗树, 而是每种方法(POST, GET ...)都有自己的一颗树。
二、获取路由handler
根据path去trees匹配到相关的路由, 拿到相关的处理handlers
在上下文的 Next() 函数里面调用程序注册的路由处理函数