おすすめ書籍はじめにGo言語の連載4回目です。Frameworkについて紹介します。代表的なGoのWAF皆さんはWAFがどのようなものかご存知だとは思いますが、改めて簡単に説明します。WAFは動的なウェブサイトなどの開発をサポートするアプリケーションフレームワークです。WAFが提供する代表的な機能としては、ORM、テンプレートエンジン、セッション管理などが挙げられます。本ブログでよく取り上げるRailsもWAFの一種です。GoにおけるWAFは大きく2つに分けられます。1つは軽量なWAF、もう一つはフルスタックなWAFです。Goでは大きくて多機能なアプリケーションを作るのではなく、小さくてシンプルなアプリケーションを組み合わせて使うことが良いとされています。そのため、軽量なWAFが主流なようです。軽量なWAF代表的なWAFとして「Echo」と「Gin」を紹介します。Echoは2015年に登場した新しいWAFです。APIをつくるのに向いているようです。Echoの設定に関してはこちらが参考になります。GinはMartiniというGoの初期からあるWAFを参考に、より高速に動作するように実装されたWAFです。Martiniと比べて40倍ほど高速なようです。フルスタックなWAF代表的なWAFとして「Beego」と「Revel」を紹介します。Beegoは主に中華圏で人気のあるWAFです。専用のCLIツールがある、LiveReloadされる等の特徴があります。くわしくはこちらをご覧ください。Frameworkから影響を受けたWAFです。他の言語でMVCフレームワークを使用した経験があるかたには親しみやすい作りになっているようです。Revelの設定に関してはこちらが参考になります。Ginを使ってみるそれでは、実際にGinを使ってみます。事前準備としてGinをインストールします。github.com/gin-gonic/ginクエリパラメータ+ポストパラメータクエリパラメータおよびポストパラメータへのアクセスは下記のように行います。