使用 go-swagger 成功创建 swagger API 后,我需要自定义应用程序,以便将数据存储到数据库并从数据库中检索数据。
我看到我只能编辑一个生成的文件:/restapi/customize_users.go
if api.UserCreateUserHandler == nil {
api.UserCreateUserHandler = user.CreateUserHandlerFunc(func(params user.CreateUserParams) middleware.Responder {
return middleware.NotImplemented("operation user.CreateUser has not yet been implemented")
})
}
通过此修改,我可以在 MySQL 数据库中写入数据
api.UsersCreateUserHandler = users.CreateUserHandlerFunc(func(params users.CreateUserParams) middleware.Responder {
sql := fmt.Sprintf("INSERT INTO users VALUES (%d, '%s', '%s', '%s')", params.Body.ID, params.Body.Email, params.Body.Password, params.Body.Name)
insert, err := db.Query(sql)
if err != nil {
panic(err)
}
defer insert.Close()
return middleware.ResponderFunc(func(rw http.ResponseWriter, pr runtime.Producer) {
rw.WriteHeader(200)
})
})
但我不知道如何返回 JSON 消息,例如“成功”。
文档不清楚,go-swagger 没有关于如何生成 JSON 作为响应的示例。
swagger.json/yaml 对于生成 JSON 的正确定义是有效的。
如我所见,我必须在那里使用中间件响应和返回。
如何修改 restapi/customize_xxxx.go 文件以获得有效的 JSON 响应。