API作成特化のフレームワーク「goa」

golangフレームワークgoa

api周りを新しくgoで作ることになり見つけた go言語で作られているAPI作成に特化しているフレームワーク。「goa(ゴア)」の紹介。

■公式 https://goa.design

goaを選択するメリット

  • swagger互換のドキュメントファイルを自動生成してくれる
  • API作成する際のバリデート周りをフレームワークの機能で定義出来る
  • テストを行う際のクライアントとヘルパーを自動生成してくれる

goaを選択するデメリット

  • DSLを利用してAPIを定義していくので学習コストが高い
  • API作成にしか特化していないので、その他の事は別途考える必要がある
  • dev、prodで分けるみたいな設定が今の所標準ではなさそう?

感想

DSLの記述に沿ってswagger自動更新してくれるのはほんと素晴らしいと思う。 特に人数少ない開発とかだとドキュメントの更新どうするのってなると思うし、 かといってAPI仕様ってちゃんと沿ってないと他の所で支障出そうだし。 そうゆう所のコストは積極的に下げていきたい。

後不安な所といえばパフォーマンスくらいだけど、API特化っていうくらいだから、 おそらく問題ないでしょう。ちゃんとベンチ取るのは課題

golangっぽいいい感じのパッケージ組み合わせて良いモノ作る。 みたいなのとはちょっと離れちゃうような気がするけど 枠組みの作成簡単にしてくれてビジネスロジックの方のコーディングに集中できるなら。 まぁ・・・そうゆうものかな・・・という感じ