//curl -i -X POST 'localhost:9090/sshPort' -d '{"port":2300,"host":"testinfo2","number":10,"avail":"true"}' func (this *SshPortController) Post() { var sshPortOb models.SshPort requestBody := string(this.Ctx.Input.RequestBody) err := json.Unmarshal(this.Ctx.Input.RequestBody, &sshPortOb) if err != nil { this.Ctx.Output.SetStatus(403) this.Ctx.Output.Body([]byte(`{"result":1,"error":"param error"}`)) this.StopRun() } logid, err := models.GetLogId(this.Ctx.Input.RequestBody) if err != nil { this.Ctx.Output.SetStatus(403) this.Ctx.Output.Body([]byte(`{"result":1,"error":"logid param error"}`)) this.StopRun() } logs.Normal("post data:", requestBody, "logid:", logid) dbconn, err := models.InitDbConn(logid) if err != nil { logs.Error("init db conn error:", err, "logid:", logid) this.Ctx.Output.SetStatus(500) this.Ctx.Output.Body([]byte(`{"result":1,"error":"init db conn error"}`)) this.StopRun() } defer dbconn.Close() dbconn.Exec("START TRANSACTION") logs.Normal("start transaction", "logid:", logid) sshPortM := new(models.SshPortManage) err = sshPortM.Insert(dbconn, sshPortOb, logid) if err != nil { dbconn.Exec("ROLLBACK") logs.Normal("ROLLBACK", "logid:", logid) logs.Error("ssh port insert error:", err, "logid:", logid) this.Ctx.Output.SetStatus(500) this.Ctx.Output.Body([]byte(`{"result":1,"error":` + err.Error() + `}`)) this.StopRun() } dbconn.Exec("COMMIT") logs.Normal("COMMIT", "logid:", logid) logs.Normal("ssh post OK!", "logid:", logid) this.Ctx.Output.Body([]byte(`{"result":0}`)) }