ctx.GET(“/v2.0/:user/go”)
ctx.GET(“/v2.0/:package/go1”)
服务启动时会报错conflicts with existing wildcard
以下可以解决,不适用于所有场景。
// 只定义一个API
pathGroup := ctx.Group("/v2.0/:path")
pathGroup.GET("/go", getPathHandler, goFunc)
pathGroup.GET("/go1", getPathHandler, goFunc1)
func getPathHandler(ctx *gin.Context) {
path := ctx.Param("path")
// 如果path的值和你期望的:user或者:package值一致
if path == "package1" {
ctx.Params = append(ctx.Params, gin.Param{Key: "package", Value: path})
} else {
ctx.Params = append(ctx.Params, gin.Param{Key: "user", Value: path})
}
ctx.Next()
}