为了账号安全,请及时绑定邮箱和手机立即绑定

go-swagger restapi/configure_todo_list.go

go-swagger restapi/configure_todo_list.go

Go
元芳怎么了 2022-08-01 15:03:14
我是和中的新手。我正在遵循 goswagger.io 的简单服务器教程中的步骤。gogo-swagger我正在使用 和 。Ubuntu 18.04swagger v0.25.0go 1.15.6按照相同的步骤,生成的文件有一些差异。例如,goswagger.io有和在里面,但我的没有。为什么会这样?find_todos_okbody.goget_okbody.gomodels链接到我生成的文件的屏幕截图与链接到 swagger.io 生成的文件的屏幕截图按照教程中所述启动服务器,我遇到了以下错误。任何人都可以帮忙吗?go install ./cmd/todo-list-server/# my_folder/swagger-todo-list/restapirestapi/configure_todo_list.go:41:8: api.TodosGetHandler undefined (type *operations.TodoListAPI has no field or method TodosGetHandler)restapi/configure_todo_list.go:42:6: api.TodosGetHandler undefined (type *operations.TodoListAPI has no field or method TodosGetHandler)goswagger.io 待办事项列表的第一步是 。我应该在哪个目录中运行此命令?我在主目录中新创建的文件夹中运行了它。但是,从页面中,它显示路径为 。我不确定我是否应该使用 或创建这些文件夹。有人可以给我建议吗?swagger init spec ...~/go/src/github.com/go-swagger/go-swagger/examples/tutorials/todo-listgo get ...git clone ...谢谢。
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

  1. 这可能是文档落后于您正在运行的代码版本。只要它编译,该工具生成的特定文件就不那么重要。

  2. 这是一个编译错误。当您这样做时,它将尝试将foo包构建为可执行文件,然后将其移动到您的目录中。对于生成的代码,中生成的代码似乎不正确。go install fooGOPATH/binrestapi/configure_todo_list.gooperations

  3. 您自己运行本教程所需要的只是一个空目录和swagger工具(而不是其源代码)。从此空项目的根目录运行命令。为了不遇到GOPATH问题,我会在做其他任何事情之前初始化一个模块。请注意,虽然 todo 列表示例代码存在于 go-swagger 源代码中,但它仅用于记录示例用法和输出。go mod init todo-list-example

我对#2的建议是确保你使用的是正确发布的go-swagger版本,而不是从最新的提交安装(当你只做一个时就会发生这种情况),因为我发现它偶尔会不稳定。go get

接下来,重新生成整个服务器,但请确保也通过传递到调用来重新生成。此文件并不总是刷新,因为您打算对其进行修改以配置您的应用程序,如果您更改了该工具的版本,则它可能不同且不兼容。restapi/configure_todo_list.go--regenerate-configureapiswagger generate

如果在此之后仍然收到编译错误,则可能值得在 https://github.com/go-swagger/go-swagger/issues 提交错误报告。


查看完整回答
反对 回复 2022-08-01
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

我认为这是一个摇摆不定的代码生成的错误。你可以做作为愚蠢的来解决这个问题:

  • 删除文件configure_todo_list.go;

  • 重新生成代码。

# swagger generate server -A todo-list -f ./swagger.yml

然后,您可以运行命令,它将成功。go install ./cmd/todo-list-server/


查看完整回答
反对 回复 2022-08-01
?
暮色呼如

TA贡献1853条经验 获得超9个赞

#2中的错误在我运行后消失了,如go get - u -f ./...


...

For this generation to compile you need to have some packages in your GOPATH:


        * github.com/go-openapi/runtime

        * github.com/jessevdk/go-flags


You can get these now with: go get -u -f ./...


查看完整回答
反对 回复 2022-08-01
  • 3 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号