One minute
Gin正则路由方案
// gin 正则路由:
type route struct {
reg *regexp.Regexp // 正则表达式
method string // 请求方式
handler func(c *gin.Context) // 处理器
}
var routes = []route{
{regexp.MustCompile(`user-(\d+)-(.*?).html$`), "GET", getUserDetail},
}
func main() {
router := gin.Default()
router.Any("/*action", func(c *gin.Context) {
// 使用正则路由表,url不需要参数
url := strings.ToLower(c.Request.URL.Path)
for _, route := range routes {
if route.reg.MatchString(url) {
if c.Request.Method == route.method {
route.handler(c)
return
}
}
}
// 未匹配则404
c.String(http.StatusNotFound, "Page Not Found")
})
router.Run(":8800")
}