From f44fcbafa71bd7bea90778e6af222bae28b5908d Mon Sep 17 00:00:00 2001 From: MengStack Dev Date: Sat, 3 Oct 2026 04:23:31 +0800 Subject: [PATCH] fix: serve doc.json via swag.ReadDoc in SwaggerHandler The custom SwaggerHandler was missing doc.json, causing Swagger UI to fail loading the API specification. --- internal/app/middleware/swagger.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/internal/app/middleware/swagger.go b/internal/app/middleware/swagger.go index 4bc30c6..34582f5 100644 --- a/internal/app/middleware/swagger.go +++ b/internal/app/middleware/swagger.go @@ -9,6 +9,7 @@ import ( "strings" swaggerFiles "github.com/swaggo/files" + "github.com/swaggo/swag" "github.com/gin-gonic/gin" ) @@ -24,6 +25,16 @@ func SwaggerHandler() gin.HandlerFunc { isCSS := strings.HasSuffix(relPath, "swagger-ui.css") isInitializer := strings.HasSuffix(relPath, "swagger-initializer.js") + isDocJSON := strings.HasSuffix(relPath, "doc.json") + + if isDocJSON { + doc := swag.ReadDoc() + c.Header("Content-Type", "application/json; charset=utf-8") + c.Writer.WriteHeader(200) + c.Writer.Write([]byte(doc)) + c.Request.URL.Path = rawPath + return + } if isInitializer { c.Header("Content-Type", "application/javascript; charset=utf-8")