3 回答
TA貢獻1802條經驗 獲得超6個贊
這可能是文檔落后于您正在運行的代碼版本。只要它編譯,該工具生成的特定文件就不那么重要。
這是一個編譯錯誤。當您這樣做時,它將嘗試將foo包構建為可執行文件,然后將其移動到您的目錄中。對于生成的代碼,中生成的代碼似乎不正確。
go install fooGOPATH/binrestapi/configure_todo_list.gooperations您自己運行本教程所需要的只是一個空目錄和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 提交錯誤報告。
TA貢獻1796條經驗 獲得超4個贊
我認為這是一個搖擺不定的代碼生成的錯誤。你可以做作為愚蠢的來解決這個問題:
刪除文件
configure_todo_list.go;重新生成代碼。
# swagger generate server -A todo-list -f ./swagger.yml
然后,您可以運行命令,它將成功。go install ./cmd/todo-list-server/
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 ./...
- 3 回答
- 0 關注
- 169 瀏覽
添加回答
舉報
