我正在使用 OpenApi 進行測試,并以https://github.com/d-vignesh/Todo-App-with-OpenAPI為例,但如果我運行它,我會收到以下錯誤:.\main.go:9:77: undefined: GetTodosParams.\main.go:31:19: undefined: Handler如果我刪除 API-Definition 中的 GetTodosParams 并生成新文件,我可以減少處理程序錯誤 - 但我不明白處理程序未定義的問題:type TodoServer struct{}func (t TodoServer) GetTodos(w http.ResponseWriter, r *http.Request) { // our logic to retrieve all todos from a persistent layer w.WriteHeader(http.StatusOK)}func (t TodoServer) CreateTodo(w http.ResponseWriter, r *http.Request) { // our logic to store the todo into a persistent layer}func (t TodoServer) DeleteTodo(w http.ResponseWriter, r *http.Request, todoId int32) { // our logic to delete a todo from the persistent layer}func (t TodoServer) UpdateTodo(w http.ResponseWriter, r *http.Request, todoId int32) { // our logic to update the todo.}func main() { s := TodoServer{} h := Handler(s) http.ListenAndServe(":3000", h)}我可以將每個 handlefunc() 的句柄字符串鏈接到一個函數,但我想使用 TodoServer 因為主包中有 Serverinterface 的類似接口函數type ServerInterface interface { // (GET /todos) GetTodos(w http.ResponseWriter, r *http.Request) // (POST /todos) CreateTodo(w http.ResponseWriter, r *http.Request) // (DELETE /todos/{todoId}) DeleteTodo(w http.ResponseWriter, r *http.Request, todoId int32) // (PUT /todos/{todoId}) UpdateTodo(w http.ResponseWriter, r *http.Request, todoId int32)}相反,我可以使用 net/http 的標準 Servrhttp 啟動它,但這無助于理解為什么接口功能不起作用
我正在使用 go openAPI 進行測試
慕婉清6462132
2022-12-13 16:13:35