Ginのvalidationが400を返すって言って聞かないので、抜け道を探した話
とタイトルを書いていますが、公式のREADMEにやり方がコミットに追加されていたので、それについて少し書きます。10月23日のことです。
当時はそのチュートリアルがなかったので、自力で探しました。あと2ヶ月早く書いて欲しかった(泣)
Ginのbindについて
Ginにはパラメータを構造体に結びつけるメソッド(bind)が存在します。
当然、ステータスーコードを自分でハンドリングしたい時ってありますよね!?
というわけで、チュートリアルを前に見た時はmust bindの説明しかありませんでした。
(must bind は失敗時に必ず400を設定します。)
が、今では以下のような説明が追記されています。
bindメソッドの種類
must bind
ステータス400と、text/plain; charset=utf-8をセットする
- Bind
- BindJSON
- BindQuery
should bind
エラーが帰ってきたとき、それを元に自分でエラーハンドリングを行う
- ShouldBind
- ShouldBindJSON
- ShouldBindQuery
まとめ
細かくはリファレンスに書いてあるので割愛しますが、
200にして返してあげたい時は、should bindメソッドを使えばOKです。
この情報もっと早く書いておいて欲しかった(2度目)