背景
GoのフレームワークであるGinの上でPostgreSQLをいじってたがerrorがJSONで返せない! →結局返せた
該当コード
_, err := db.Exec("insert into foo bar;")
if err != nil {
c.JSON(200, gin.H{
"message": err,
})
return
}
こんな感じで動くと思ってた
実際はdb.ExecのHTTPStatusCodeが400なのに200を返そうとするとちゃんとJSONが返せないっぽい
解決策
で,どうやってdb.ExecのHTTPStatusCodeを取得するか
あった
詳細(https://gowalker.org/github.com/gin-gonic/gin)
これを使って200→c.Writer.Status()とするとJSONが返せる