はじめに
Go言語を使ってRESTfulなAPIを構築する場合、ルーティングやリクエストの処理などが直感的に行えるライブラリ「Gorilla Mux」があります。この記事ではGorilla Muxの基本的な使い方と、実際のAPI開発での活用法について解説します。
そのほかのwebアプリケーションに使用されるライブラリに関しては下記を参照にしてください
GoでのWebアプリケーション構築:Echoフレームワークの魅力とその詳細な活用法
Go言語とFasthttpで超高速なウェブサービスを構築:Fasthttpの詳細解説
Go言語とFiberで高性能なウェブアプリを構築:深掘りFiber入門
Ginを使ってみる(インストールからHelloWorld表示まで)【Go言語】
Gorilla Muxの基本
Gorilla Muxは、GoでWebアプリケーションを開発する際に役立つライブラリの一つです。URLルーティングやリクエストのマッチングなど、API開発に必要な機能を提供しています。以下に、シンプルなWebサーバーを作成するサンプルコードを示します。
まずは、インストールします
go get github.com/gorilla/mux
次に簡単な使い方です
package main
import (
"fmt"
"net/http"
"github.com/gorilla/mux"
)
func YourHandler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Gorilla!\n"))
}
func main() {
r := mux.NewRouter()
r.HandleFunc("/", YourHandler)
http.Handle("/", r)
fmt.Println("Server listening!")
http.ListenAndServe(":8000", r)
}
上記のコードを実行してlocalhost:8000
にアクセスすると、”Gorilla!”というレスポンスが返されます。
ルーティングとパラメータの取得
Gorilla Muxではパスパラメータを簡単に取得できます。以下に、ユーザーIDをパスパラメータとして取得するサンプルコードを示します。
func main() {
r := mux.NewRouter()
r.HandleFunc("/users/{user}", func(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
user := vars["user"]
fmt.Fprintf(w, "User: %v\n", user)
})
http.Handle("/", r)
fmt.Println("Server listening!")
http.ListenAndServe(":8000", r)
}
上記のコードを実行してlocalhost:8000/users/testuser
にアクセスすると、”User: testuser”というレスポンスが返されます。
まとめ
以上がGorilla Muxの基本的な使い方ですが、さらに高度な利用法や詳細なドキュメンテーションについては公式のGitHubリポジトリを参照してください。
Gorilla Muxは直感的なAPIを提供し、GoでRESTfulなWebサービスを開発する際に大いに役立つライブラリです。ぜひこの機会に取り組んでみてください。