Part 3
Web サーバーを書く
- リクエスト 受け取る
- ハンドラ 処理する
- レスポンス 返す
Part 2 で見た「リクエストを受け取ってレスポンスを返す」を、今度は自分の手で実装します。
まず標準ライブラリ net/http だけで書き、仕組みを理解してから、ISUCON の初期実装でよく使われるフレームワーク echo に進みます。
この Part はブラウザだけで進められます。ページ内の REST クライアントから、自分で書いたサーバーへリクエストを送ります。
この Part の所要時間は 3〜5 時間が目安です。 終えると、Go で HTTP リクエストを受け取り、パスやメソッドに応じたレスポンスを返せます。 手元の Go とターミナルは、ページ内で学んだコードを自分の環境でも動かしたくなった段階で使います。
- 最小の Web サーバー net/http で最小の Web サーバーを書き、ページ内の REST クライアントからリクエストを送ります。
- ルーティングとハンドラ http.ServeMux で複数のパスを捌き、ハンドラの 2 つの引数と http.Handler インターフェースの正体を読み解きます。
- リクエストを受け取る パスパラメータ、クエリ文字列、ボディの 3 経路でクライアントからデータを受け取り、検証して 400 を返す判断を身につけます。
- レスポンスを返す ステータスコードとヘッダーの書き方を押さえ、JSON を返す API と html/template で HTML を返すページを実装します。
- ミドルウェア ハンドラを受け取ってハンドラを返す関数というパターンで、全ハンドラ共通の処理を 1 箇所に書く方法を学びます。
- フレームワーク echo ここまでの標準ライブラリの知識がそのまま通用することを、echo で同じアプリを書き直して確かめます。