After successful creation of swagger API with go-swagger, I need to customise the app, in order to store data to the database and retrieve data out of the database.
I see that only one of the generated files I can edit: /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")
})
}
I'm able to write data in MySQL database with this modification
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)
})
})
But I don't know how to return JSON message e.g. "Success".
Documentation is not clear, go-swagger don't have examples on how to produce JSON as a response.
swagger.json/yaml is valid with correct definition for producing JSON.
As I see, I must use middleware response with return there.
How to modify restapi/customize_xxxx.go file to get a valid JSON response.