Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go API Validation error handling

Go API Validation error handling

GoのAPIでのValidation Error Handlingの実装例です。

Avatar for Kazuki Higashiguchi

Kazuki Higashiguchi

May 27, 2019
Tweet

More Decks by Kazuki Higashiguchi

Other Decks in Technology

Transcript

  1. © - BASE, Inc. Go製APIの Validation error handling . .

    #gouncon kg Go Un Conference kg - @hgsgtk
  2. © - BASE, Inc. このトークで持ち帰れること • Goでのバリデーションハンドリングの実例 • ネット上でなかなか⾒つからない(個⼈談) •

    UseCase: HTTPリクエスト時‧DB保存時 • Question/Suggestionください • 即時に反映されるかも知れません
  3. © - BASE, Inc. ⾃⼰紹介 東⼝和暉 (Kazuki Higashiguchi) Twitter /

    GitHub : @hgsgtk バックエンドエンジニア BASE BANK, Inc. / Dev Division Go歴: - 趣味:2017.7〜 - 仕事:2018.6〜
  4. © - BASE, Inc. Step Validatorを作成する > 使⽤ライブラリ • go-playground/validator

    • https://github.com/go-playground/validator • ginフレームワークで公式採⽤されている • →このライブラリをwrapした validation パッケージ を作成
  5. © - BASE, Inc. Step : Validatorを作成する > tagNameFuncの作成 •

    tagNameFuncを作成 • See also: https://github.com/go-playground/ validator/issues/ •
  6. © - BASE, Inc. Step : バリデーション結果を利⽤ > 構造体への設定 •

    バリデーションしたい構造体に validate タグを設定 • 構造体⾃⾝がvalidatorを実⾏する振る舞いを持つ
  7. © - BASE, Inc. Step : バリデーション結果を利⽤ > エラー結果を利⽤ •

    error 型で返却される • validation.Error interface型か判定