json - 加载捆绑在可执行文件中的 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")
}
解决方案
推荐阅读
- java - 如何使方法返回类型为 Callable
- unity3d - 是否可以使用 ARcore depth api 创建 3d 扫描仪。可以从收集的点云构建 3d 模型吗?
- hsqldb - 哪种 HSQLDB 数据类型最适合 5000 个字符串:NTEXT、CLOB 或其他。?
- entity-framework-core - 如何在 .Net EF Core 中将本地化实现为 JSON 对象?
- javascript - 我想实现反应水平无限滚动。没有得到适当的解决方案。有没有人在 react 或 javasrcipt 中构建过这个
- javascript - 从函数返回返回未定义
- flutter - Flutter mapbox折线图
- python - Tensorflow 错误“TypeError:传递给 'Pack' Op 的 'values' 的列表中的张量具有不完全匹配的类型 [int32, int64, int32, int32, int32]。”
- amazon-web-services - 即使在购买了预留实例 (AWS) 后,我的实例也会被计费
- python-3.x - Python通过鼠标拖动截取窗口特定部分的屏幕截图