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

Go言語のサードパーティ製ルーターを活用したルーティング方法!chi・gorilla/mux入門

Go言語のサードパーティ製ルーター(chi・gorilla/muxなど)を活用する方法
Go言語のサードパーティ製ルーター(chi・gorilla/muxなど)を活用する方法

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

生徒

「先生、Go言語で複雑なWebアプリを作るとき、標準のServeMuxだとURLの管理が大変そうです。もっと便利な方法はありますか?」

先生

「そうですね。そんなときは、Go言語のサードパーティ製ルーターを使うと便利です。代表的なものにchigorilla/muxがあります。」

生徒

「サードパーティ製ルーターって何ですか?」

先生

「標準ライブラリ以外で提供されているルーターのことで、より柔軟で便利なルーティング機能を提供してくれます。複雑なURLやパラメータ付きのルーティングも簡単に設定できます。」

生徒

「具体的にどうやって使うんですか?」

先生

「では、基本的な使い方を見ていきましょう!」

1. chiルーターの基本的な使い方

1. chiルーターの基本的な使い方
1. chiルーターの基本的な使い方

まず、chiは軽量でシンプルなGo言語向けのサードパーティ製ルーターです。ルーティングの設定が簡単で、パスパラメータやミドルウェアの利用も容易です。


package main

import (
    "fmt"
    "net/http"

    "github.com/go-chi/chi/v5"
)

func main() {
    r := chi.NewRouter()

    r.Get("/hello", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, "こんにちは、chiルーターの世界!")
    })

    r.Get("/user/{id}", func(w http.ResponseWriter, r *http.Request) {
        id := chi.URLParam(r, "id")
        fmt.Fprintf(w, "ユーザーID: %s\n", id)
    })

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

上の例では、/helloにアクセスすると固定メッセージが返り、/user/{id}ではURLからユーザーIDを取得して表示できます。chi.URLParamで簡単にパスパラメータを取り出せるのが便利です。

2. gorilla/muxルーターの基本的な使い方

2. gorilla/muxルーターの基本的な使い方
2. gorilla/muxルーターの基本的な使い方

gorilla/muxはGo言語で最も有名なサードパーティ製ルーターの一つで、パスパラメータや正規表現マッチなど強力なルーティング機能があります。


package main

import (
    "fmt"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    r := mux.NewRouter()

    r.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, "こんにちは、gorilla/muxルーター!")
    }).Methods("GET")

    r.HandleFunc("/user/{id}", func(w http.ResponseWriter, r *http.Request) {
        vars := mux.Vars(r)
        fmt.Fprintf(w, "ユーザーID: %s\n", vars["id"])
    }).Methods("GET")

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

この例では、mux.Vars(r)でURLのパスパラメータを取得し、ユーザーIDを表示できます。HTTPメソッドを指定できるので、GETやPOSTごとに処理を分けることも簡単です。

3. サードパーティ製ルーターを使うメリット

3. サードパーティ製ルーターを使うメリット
3. サードパーティ製ルーターを使うメリット

標準のServeMuxと比べて、サードパーティ製ルーターには次のようなメリットがあります。

  • パスパラメータやクエリパラメータの取得が簡単。
  • HTTPメソッドごとのルーティングが明確。
  • 中間処理(ミドルウェア)の挿入が容易で、認証やログ処理などに便利。
  • 複雑なURL構造でも整理しやすく、大規模なWebアプリ開発に向いている。

chiは軽量で高速、gorilla/muxは機能が豊富で柔軟、といった特徴があり、用途に応じて選ぶと良いでしょう。

4. 実践的な活用例

4. 実践的な活用例
4. 実践的な活用例

例えば、ブログアプリで記事一覧ページや記事詳細ページを作る場合、chiやgorilla/muxを使うとURLごとに処理を整理できます。


r.Get("/articles", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "記事一覧ページ")
})

r.Get("/articles/{slug}", func(w http.ResponseWriter, r *http.Request) {
    slug := chi.URLParam(r, "slug")
    fmt.Fprintf(w, "記事ページ: %s\n", slug)
})

このようにURL構造を整理すると、Webアプリの拡張やメンテナンスがしやすくなります。

カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Kotlin・Go・Swift記事の人気No3
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
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のオプショナル型とは?初心者でもわかる使い方とアンラップの基礎