问题标签 [go-swagger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1072 浏览

go-swagger - go-swagger 响应有效负载不是模型类型

我正在运行 go-swagger head of master https://github.com/go-swagger/go-swagger/commit/3981236c3f6bd9eabb26f14e9d31b853d340405f

不确定这是一个问题,还是我缺乏理解。我有一个 healthcheck 方法,默认情况下返回状态 500 以及模型中定义的 errorMessage 对象。但是,WithPayload 方法采用 GetHealthcheckDefaultBodyBody 类型。这里不是什么大问题,因为我可以只创建其中一个,但是在我需要返回模型类型数组的地方,我最终会编写很多样板来从模型类型映射到 BodyBody 类型,例如

我注意到 repo 中的示例代码在这方面与我生成的代码不同:https ://github.com/go-swagger/go-swagger/blob/3981236c3f6bd9eabb26f14e9d31b853d340405f/examples/tutorials/todo-list/server-complete /restapi/operations/todos/add_one_responses.go。我无法从此处的示例规范生成代码:https ://github.com/go-swagger/go-swagger/blob/3981236c3f6bd9eabb26f14e9d31b853d340405f/examples/tutorials/todo-list/server-complete/swagger.yml

我的规格:

0 投票
2 回答
2230 浏览

go - Golang 招摇返回 404 未找到

我按照这个 github 页面https://github.com/yvasiyarov/swagger上的说明使用示例项目和生成的 api 文档。但是当我运行最后一个命令来运行并显示 API 页面时,当我去那里时,我总是得到 404 not found

web.go 文件本质上是https://github.com/yvasiyarov/swagger/blob/master/web.go-example。它基本上是 repo 中 web.go-example 的副本......我不明白为什么它会返回 404。

另外,您对类似的更好的 api 文档生成器有什么建议吗?我不想要像https://github.com/go-swagger/go-swagger这样的代码生成器。我想根据我现有的代码生成 api

这是生成的 docs.go

0 投票
1 回答
4055 浏览

go - 如何设置 go-swagger 从注释生成规范

我正在按照https://goswagger.io/generate/spec.html此处生成 swagger 规范的说明进行操作。

我有一个需要 API 用户界面的现有项目。我想使用 go swagger 但我完全困惑https://github.com/go-swagger/go-swagger/tree/master/examples/todo-list 我想设置它,所以我在代码中添加注释和然后运行命令 swagger generate spec 它会生成规范但是每当我运行它时,它都会打印{"swagger":"2.0","paths":{},"definitions":{}}

这是我运行它的命令

我的项目结构如下

在 main.go 我有这个注释

在我的一个处理程序上方的路由器中,我有这个注释

我一直在尝试设置 api 生成器一段时间。任何帮助深表感谢。如果您有设置它的经验,请告诉我您是如何做到的

0 投票
1 回答
1204 浏览

go - go-swagger - 找不到招摇服务命令

我正在尝试使用命令提供 swagger.json 文件,swagger serve但出现错误

从哪里获取服务命令的文档?

0 投票
1 回答
721 浏览

swagger-ui - swagger UI 无法处理 redoc 能够处理的 swagger.json

我有以下简单的 swagger.json 文件。这是使用 go-swagger 注释为 golang 服务生成的。我能够让 UI 页面使用 redoc 运行。

我想用 swagger-ui 显示它,但我无法让它工作。它在页面加载时的控制台中显示一个错误,上面写着

Uncaught TypeError: Cannot create property 'definitions' on string 'swagger.json'(…)

不知道为什么会这样

redoc页面显示如下 在此处输入图像描述

这是招摇文件

0 投票
1 回答
276 浏览

go - Goswagger 没有创建适当的 json 规范文件

我正在尝试为petstore 示例的 go 实现创建一个规范文件。go generate我在目录中尝试了一个,doc.go但它什么也没做。在进一步阅读中,我意识到应该有

//go:generate swagger generate spec -o swagger.json

doc.go. 当我添加它创建一个规范文件但它不包含整个规范时。这是创建的 .json 文件go generate

规范文件中没有提到路由/参数/模型。这是应该的吗?这是来自 goswagger repo 的官方示例,所以我怀疑代码是错误的。我应该改变什么才能让它工作?

0 投票
1 回答
12075 浏览

go - golang中的var()是什么意思

我浏览了 go-swagger 生成的代码,找到了以下代码:

我注意到这里:

我完全不明白这是什么意思,谁能帮我理解这段代码?谢谢

0 投票
0 回答
482 浏览

angularjs - 带有 go-swagger 的 Golang 和 AngularJS 项目结构

我对 Golang 比较陌生,在以前的项目中使用过 Node.JS 和 AngularJS,并且在 Golang 对项目结构非常固执己见时遇到了麻烦。我们的 Go 代码存在于一个存储库中,该存储库还包含我们的 HTML、CSS 和 JS 代码,因此我们的“Web UI”是一个单一的检出。Go 服务器提供静态页面以让 AngularJS 完成繁重的客户端,并提供相当复杂的 RESTful API 用于与一块嵌入式硬件进行交互。我们在 Go 服务器代码中使用本地包含来解决代码实际上不在 GOPATH 中的事实。文件夹结构大致如下(子文件夹未显示):

/ <-- repo root, checked out wherever you want (not in GOPATH) fonts/ scripts/ <-- all the AngularJS code server/ <-- all the Go code styles/ views/ <-- all the HTML code

我现在正在使用 go-swagger 库从我们的 Go 服务器代码中的注释生成一个 Swagger 规范,因为 Swagger UI 为与我们的服务器 API 交互提供了一个方便的 UI。但是,我发现如果您的代码不在 GOPATH 中,则无法使用 go-swagger 解析器的很大一部分。如果我将服务器文件夹复制到 GOPATH src 目录并在那里运行它,我可以让 go-swagger 工作,但我显然不想在每次更新 API 或添加新路由时都这样做。

我想我将不得不对我们的文件夹结构或我们的构建过程进行一些更改,但我想了解最合乎逻辑的前进方式。理想情况下,我们会在 Gruntfile 中添加一个新任务,通过调用 go-swagger 来生成 swagger 规范,并将该规范复制到 Swagger UI 的默认位置,以便我们可以在每次构建时提供正确的 API 规范。我了解该任务应该如何运作,但它不适用于我们当前的项目结构。所以:

  • 我们是否应该将 Go 服务器代码分解为我们在 GOPATH 中签出的自己的存储库?我们还有其他工具(如 ffjson)也对我们存在于 GOPATH 之外的 Go 代码不满意,所以也许这值得我们努力更新我们的构建过程来处理。
  • 有没有办法修改 GOPATH(或像 PATH 一样添加到它),以便 go-swagger(和 ffjson)可以在我们现有的 repo 结构中工作?如果可能的话,这似乎是最简单的路径。我已经尝试在 GOPATH 中检查我们的“UI”存储库,但最初并没有奏效(如果我更新我们的导入以使用从 repo 根目录到服务器文件夹的任意路径,它可能会起作用)。
  • 完全不同的东西?正如我所说,我对 Go 还很陌生,而且当我加入这个项目时,这个项目已经存在了几年,所以我还不熟悉 Go 的来龙去脉。
0 投票
1 回答
1163 浏览

string - 如何使用 go-swagger 定义附件下载

go-swagger用来下载附件。这些是小的多行文件,另一端只有一个浏览器。我尝试将响应定义为'string',但找不到用多行文本填充有效负载的方法,它以“\r\n”而不是换行符到达。我也尝试了'string'format 'binary',但随后客户端看到一个包含Reader{}. 我yaml的 200 响应内容如下所示:

我也尝试了'string'format 'byte',但我不想要base64编码响应。对此有何建议?

这是我到目前为止所尝试的:

尝试“字符串”格式“字节”...

尝试“字符串”

尝试“字符串”格式“二进制”

0 投票
1 回答
506 浏览

go - 自定义 go-swagger 生成规范

我正在使用 go-swagger 使用 command 生成规范swagger generate spec。一切正常,但是我想减轻规格与实际实现之间可能存在的不匹配。

例如,下面的模型有required : true评论(用于规范生成),以及value:"required"实际验证(例如使用govalidator

有没有办法自定义 go-swagger 来解析valid:"required"并自动添加required:true生成的规范?我知道目前swagger generate spec已经在检查json:"Tittle"以填充 json field name Title。任何指针将不胜感激。谢谢。