problems 404 with Multiple API
yuyinhao opened this issue · comments
gin set
v1.GET("/swagger/public/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, ginSwagger.InstanceName("public")))
v1.GET("/swagger/private/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, ginSwagger.InstanceName("private")))
WrapHandler use swaggerFiles.Handler,set swaggerFiles.Handler.prefix =
once.Do(func() { handler.prefix = marcher[1] })
Because it is a singleton, Only the last handler.prefix will be saved。
When I call public and private instance, and call public again, it uses the handler.prefix of private。
results in a resource 404。
Here's a workaround solution.
var publicSwaggerFileHandler webdav.Handler
var privateSwaggerFileHandler webdav.Handler
func init() {
publicSwaggerFileHandler = *swaggerfiles.Handler
privateSwaggerFileHandler = *swaggerfiles.Handler
}
...
v1.GET("/swagger/public/*any", ginSwagger.WrapHandler(&publicSwaggerFileHandler, ginSwagger.InstanceName("public")))
v1.GET("/swagger/private/*any", ginSwagger.WrapHandler(&privateSwaggerFileHandler, ginSwagger.InstanceName("private")))