カテゴリ: Go言語 更新日: 2025/11/10

Go言語のhttp.ServeMuxを使ったルーティングの基本

Go言語のhttp.ServeMuxを使ったルーティングの基本
Go言語のhttp.ServeMuxを使ったルーティングの基本

先生と生徒の会話形式で理解しよう

生徒

「先生、Go言語でWebアプリを作るときに、URLごとに処理を分けたいんですけど、どうすればいいですか?」

先生

「それなら、Go標準ライブラリのhttp.ServeMuxを使うと便利です。URLごとに処理を登録できるんですよ。」

生徒

「ServeMuxって何ですか?」

先生

「ServeMuxは、URLとハンドラー(処理)を結びつけるルーターのようなものです。アクセスされたURLに応じて、どの処理を呼び出すか判断してくれます。」

生徒

「なるほど、具体的な例を見せてもらえますか?」

1. http.ServeMuxでルーティングする基本

1. http.ServeMuxでルーティングする基本
1. http.ServeMuxでルーティングする基本

Go言語では、http.NewServeMux()でServeMuxのインスタンスを作り、HandleFuncメソッドでURLごとの処理を登録します。最後にhttp.ListenAndServeでサーバーを起動します。


package main

import (
    "fmt"
    "net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "こんにちは、Goの世界へようこそ!")
}

func aboutHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "このページはGo言語で作られたサンプルです。")
}

func main() {
    mux := http.NewServeMux()
    mux.HandleFunc("/hello", helloHandler)
    mux.HandleFunc("/about", aboutHandler)

    http.ListenAndServe(":8080", mux)
}

この例では、/helloにアクセスするとhelloHandlerが呼ばれ、/aboutにアクセスするとaboutHandlerが呼ばれます。ServeMuxがURLごとに適切な処理を振り分けてくれる仕組みです。

2. ServeMuxを使うメリット

2. ServeMuxを使うメリット
2. ServeMuxを使うメリット

ServeMuxを使うことで、URLごとの処理を簡単に整理でき、複雑なWebアプリでもスッキリした構造にできます。ポイントは以下の通りです。

  • URLパスごとにハンドラーを登録できるので、処理が分かりやすい。
  • 標準ライブラリだけでルーティングが可能で、外部ライブラリを使わなくてもOK。
  • ServeMuxを変数にしておけば、複数のルーターを使い分けることもできる。
  • ハンドラー関数はhttp.ResponseWriter*http.Requestを受け取る形式で統一されているので、処理の共通化が簡単。

これにより、Go言語でのWebアプリ開発でURLごとのルーティングを整理しやすくなります。

3. URLルーティングの応用例

3. URLルーティングの応用例
3. URLルーティングの応用例

ServeMuxを使うと、例えばユーザー情報ページや管理ページなど、複数のURLを簡単に整理できます。


func userHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "ユーザー情報ページです")
}

func adminHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "管理者専用ページです")
}

func main() {
    mux := http.NewServeMux()
    mux.HandleFunc("/user", userHandler)
    mux.HandleFunc("/admin", adminHandler)
    http.ListenAndServe(":8080", mux)
}

このようにしておけば、/user/adminにアクセスされた場合に、それぞれ異なる処理を簡単に返せます。URLごとに分けることでコードが整理され、見通しも良くなります。

4. まとめると

4. まとめると
4. まとめると

Go言語でWebアプリを作るときは、http.ServeMuxを使うことでURLごとの処理を整理できます。ServeMuxを使ったルーティングは、標準ライブラリだけで完結し、初心者でも理解しやすい仕組みです。ハンドラー関数とURLパスを組み合わせて、簡単に複数ページのWebアプリを作ることができます。

カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.3
Kotlin・Go・Swift記事の人気No3
Swift入門ガイド|基本構文と書き方をマスターしよう
No.4
Kotlin・Go・Swift記事の人気No4
Kotlinの正規表現(Regex)の使い方をやさしく解説!文字列操作の基本を初心者向けに学ぼう
No.5
Kotlin・Go・Swift記事の人気No5
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.6
Kotlin・Go・Swift記事の人気No6
Kotlinのコンパニオンオブジェクトとは?初心者向けに使い方と役割をわかりやすく解説!
No.7
Kotlin・Go・Swift記事の人気No7
Kotlinのwhen式を完全ガイド!初心者でもわかるパターンマッチング的な使い方
No.8
Kotlin・Go・Swift記事の人気No8
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎