drjk87189 2019-03-21 00:11
浏览 264

如何在GoLang lang和http.ServeMux中使用swaggo(swagger doc)?

In documentation https://github.com/swaggo/swag is using gin to initialize server, but in my application i'm using http.ServeMux and how initialize swaggo without use gin server

in Docs use

r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

how can I use something like ...

mu.Handle("/swagger/*any", swaggerFiles.Handler)

......

follows as my initial idea, but don't work... rsrs

func Server() *http.ServeMux {
    docs.SwaggerInfo.Title = "Swagger Example API"
    docs.SwaggerInfo.Description = "This is a sample server Petstore server."
    docs.SwaggerInfo.Version = "1.0"
    docs.SwaggerInfo.Host = "petstore.swagger.io"

    mu := http.NewServeMux()
    mu.Handle("/metrics", promhttp.Handler())
    mu.Handle("/swagger/*any", swaggerFiles.Handler)
    mu.HandleFunc("/helloWorld", handlers.NewHelloWorldHandler().HelloWorldHandler)
    mu.HandleFunc("/production/", handlers.NewProductionHandler().ProductionHandler)
    return mu
}
  • 写回答

1条回答 默认 最新

  • douweng3383 2019-03-21 01:02
    关注

    If you have your swagger files built for distribution (i.e. static files) and are in say the directory: /some/dir/path/static/swagger

    This should work with go's http router:

    staticFilesPath := "/some/dir/path/static"
    staticRoute := "/static/"
    
    h := http.NewServeMux()
    
    // static file handler for route '/static/*'
    h.Handle(
        staticRoute,
        http.StripPrefix(
            staticRoute,
            http.FileServer(http.Dir(staticFilesPath)),
        ),
    )
    

    I find it helpful to add this also:

    // (redirect a route if not recognized - remove in production)
    //
    // unrecognized routes will redirect to Swagger API docs
    h.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        http.Redirect(w, r, staticRoute + "swagger/", http.StatusSeeOther)
    })
    
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题