首页 > 解决方案 > 加载捆绑在可执行文件中的 json 文件

问题描述

我有一个用 Go 编写的应用程序,它公开了一个 REST API。我正在尝试为 API 添加 swagger 文档。这个想法是在用户尝试点击/api-docs时提供swagger规范,并在他们点击/swaggerui时显示swagger UI/redoc UI。swagger 规范 (.json) 文件是预先生成的,并且是代码库的一部分。为了公开 swagger 规范,我尝试使用 ioUitl.ReadFile 和 http.ServeFile 阅读 swagger 规范。当它从 IDE 或当前目录运行时,它工作正常,但如果我构建应用程序以创建可执行文件并将可执行文件复制到另一个位置,它就不起作用;看起来它正在寻找从文件系统而不是从可执行文件中读取。我来自java背景,可以轻松实现加载捆绑在Web应用程序中的资源。我'

我试过的例子: -

func serveswagger(w http.ResponseWriter, r *http.Request) {
b, err := ioutil.ReadFile("api/api-docs/swagger.json")
if err != nil {
    fmt.Print(err)
}
w.Write(b)

}

func pastaWorkspacePage(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "api/api-docs/swagger.json")
}

标签: jsonrestgoswagger

解决方案


推荐阅读