我是go和go-swagger的新手。下面是简单服务器教程中goswagger.io中的步骤。
我正在使用Ubuntu 18.04,swagger v0.25.0和go 1.15.6。
find_todos_okbody.go和get_okbody.go在models中有,但我的没有。为什么是这样?链接到生成的文件的屏幕截图对链接到swagger.io生成的文件的屏幕截图
go install ./cmd/todo-list-server/中所写的,启动服务器会给出以下错误。有人能帮忙吗?# my_folder/swagger-todo-list/restapi
restapi/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)swagger init spec ...。我应该在哪个目录中运行这个命令?我在主目录中新创建的文件夹中运行它。但是,从页面中,它显示了要成为~/go/src/github.com/go-swagger/go-swagger/examples/tutorials/todo-list的路径。我不确定是使用go get ...、git clone ...还是创建这些文件夹。有人能给我建议吗?谢谢。
发布于 2021-01-06 15:32:13
go install foo时,它将尝试将foo包构建为可执行文件,然后将其移到您的GOPATH/bin目录中。restapi/configure_todo_list.go中生成的代码似乎不适合生成的operations代码。go mod init todo-list-example初始化一个模块,然后再做其他事情。注意,虽然todo列表示例代码存在于go-swagger源代码中,但它只用于记录示例使用和输出。我对#2的建议是确保您使用的是一个正确发布的go-swagger版本,而不是从最新的提交(当您只执行go get时)安装,因为我发现这是偶尔不稳定的。
接下来,重新生成整个服务器,但也要确保通过将restapi/configure_todo_list.go传递给swagger generate调用来重新生成swagger generate。这个文件并不总是刷新的,因为你打算修改它来配置你的应用程序,如果你改变了工具的版本,它可能是不同的和不兼容的。
如果在此之后仍然会出现编译错误,那么在https://github.com/go-swagger/go-swagger/issues上提交错误报告可能是值得的。
发布于 2021-01-07 03:13:31
谢谢@EzequielMuns。#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-07-14 09:46:56
我认为这是一个错误的招摇过市代码生成。您可以通过跟踪来修复这个问题:
configure_todo_list.go;# swagger generate server -A todo-list -f ./swagger.yml然后,您可以运行命令go install ./cmd/todo-list-server/,它将成功。
https://stackoverflow.com/questions/65593222
复制相似问题