April 2022
Beginner to intermediate
464 pages
6h 44m
Japanese
ウェブアプリケーションを実装する上で、重要な部品が ルーター です。 マルチプレクサー とも呼ばれます。
ウェブアプリケーションは1つのポートでソケットをオープンしてリクエストを受け付けます。ブラウザやウェブフロントエンドはその1つのポートに対して認証やデータの取得、データの更新などのありとあらゆるリクエストを投げます。ウェブアプリケーションはこのリクエストの種類を分類して適切なレスポンスを返す必要があります。
ルーターがない世界であれば、このリクエストの振り分けには大量のif文を記述する必要があります。巨大なスパゲッティコードが誕生するでしょう。ルーターはメソッドとパスという2つの情報を元に処理を振り分けます。
リクエストの振り分けに使える機能は標準ライブラリにもあります。標準ライブラリでは2つの型をビルディングブロックとして扱います。1つはhttp.Handler型で、もう1つはhttp.HandlerFuncです。後者は前者でもあります。これらは振り分けられた後に呼ばれるハンドラーです。特定のURLごとにこのhttp.Handlerへの振り分けを行うのが、http.ServeMuxです。
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
yes := 0
no := 0
mux := http.NewServeMux()
mux.Handle("/asset/", http.StripPrefix("/asset/", http.FileServer(httpRead now
Unlock full access