Go

【Go】net/httpパッケージを活用したGoの簡易APIを作成する

どうも、Go勉強中のとがみんです。
net/httpパッケージを活用したGoの簡易APIの作成について整理していきます。

今回作成するもの

「名前」をリクエストすると、「こんにちは!〇〇さん!」というレスポンスを返してくれる超簡易APIを作成してみます。
HTTPクライアントとサーバーの実装を提供するnet/httpパッケージを活用します。

作成したGoの簡易APIのソースコード

handleRequests()

handleRequests()関数は、リクエストURLとそのリクエストに応じた関数のマッピングを保持し、Webサーバーを起動し、リクエストを待ち受ける関数です。

http.NewServeMux()は、新しいServeMuxを作成し返却します。

ServeMuxは、HTTPリクエストのマルチプレクサで、受信したリクエストのURLと、そのURLに関数を対応させる役割を持ちます。

mux.Handle(“/hello”, http.HandlerFunc(hello))のコードで、リクエストURLの/hellohello関数のマッピングを登録し、http.ListenAndServe(“:8080”, mux)でリクエストを待ち受けの状態になります。

hello (w http.ResponseWriter, r *http.Request)

この関数は受け取ったリクエストを処理し、レスポンスを作成する関数です。
レスポンスに、はリクエストで受け取ったパラーメータを活用して、文字列を作成しています。

実行して動作を確認する

$ go run http.go
Webサーバーを起動します

下記にアクセスすると、「こんにちはtogaminさん!」と表示されました。
http://localhost:8080/hello?name=togamin

まとめ

net/httpのパッケージを活用したGoの簡易APIを作成しました。

参考

Goのhttp.Handlerやhttp.HandlerFuncをちゃんと理解する