TaillookTech

モバイルアプリ開発を追っています

GolangのGinでStatusCodeが取得方法がわからなかった件

背景

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を取得するか

f:id:taillook:20180415123246p:plain

あった
詳細(https://gowalker.org/github.com/gin-gonic/gin)

これを使って200c.Writer.Status()とするとJSONが返せる