Open yuyinhao opened 2 years ago
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")))
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。