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

我正在使用 go openAPI 进行测试

我正在使用 go openAPI 进行测试

Go
慕婉清6462132 2022-12-13 16:13:35
我正在使用 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 启动它,但这无助于理解为什么接口功能不起作用
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

main.go我猜您正在尝试以已弃用的非模块方式运行该文件。试试下面的食谱。


克隆存储库:


git clone https://github.com/d-vignesh/Todo-App-with-OpenAPI

cd Todo-App-with-OpenAPI/

像这样运行它:


go run github.com/d-vignesh/Openapi-todo-app

像这样构建它:


go install github.com/d-vignesh/Openapi-todo-app


# Then run the executable:

Openapi-todo-app


查看完整回答
反对 回复 2022-12-13
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信