From a570a5468bb251bde3dad37961686a10a4d01fd8 Mon Sep 17 00:00:00 2001 From: Joshua Kwan Date: Mon, 15 Feb 2021 16:34:25 -0500 Subject: [PATCH] Ability to create EchoWrapHandler with specific API ID For backwards compatibility, preserve the functionality of EchoWrapHandler but create new EchoWrapHandlerName which accepts a name parameter. See: swaggo/swag#885 --- swagger.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/swagger.go b/swagger.go index df41455..d6b68fd 100644 --- a/swagger.go +++ b/swagger.go @@ -26,8 +26,13 @@ func URL(url string) func(c *Config) { // WrapHandler wraps swaggerFiles.Handler and returns echo.HandlerFunc var WrapHandler = EchoWrapHandler() -// EchoWrapHandler wraps `http.Handler` into `echo.HandlerFunc`. +// EchoWrapHandler is the same as EchoWrapHandlerName, but uses the default swag ID. func EchoWrapHandler(confs ...func(c *Config)) echo.HandlerFunc { + return EchoWrapHandlerName(swag.Name, confs...) +} + +// EchoWrapHandlerName wraps `http.Handler` into `echo.HandlerFunc` with a specific swag ID. +func EchoWrapHandlerName(swagID string, confs ...func(c *Config)) echo.HandlerFunc { handler := swaggerFiles.Handler @@ -35,10 +40,6 @@ func EchoWrapHandler(confs ...func(c *Config)) echo.HandlerFunc { URL: "doc.json", } - for _, c := range confs { - c(config) - } - // create a template with name t := template.New("swagger_index.html") index, _ := t.Parse(indexTempl) @@ -64,7 +65,7 @@ func EchoWrapHandler(confs ...func(c *Config)) echo.HandlerFunc { index.Execute(c.Response().Writer, config) case "doc.json": - doc, _ := swag.ReadDoc() + doc, _ := swag.ReadDocName(swagID) c.Response().Write([]byte(doc)) default: handler.ServeHTTP(c.Response().Writer, c.Request())