プログラマー VTuber 衣亥栖ティオのちょっとした話

Youtubeに投稿したプログラミング学習動画の補足説明をするためのブログです。

プログラマーへの道 #62 の補足説明

こんにちは、プログラマーVTuberの衣亥栖ティオです。
今回は以下の動画の補足説明をします。 動画内で実装したソースコードも載せています。


今回の動画で実装したソースコード

前回からの差分は以下です。

https://github.com/tio-iis/sample-backend-server/pull/2/files

全体は以下です。

https://github.com/tio-iis/sample-backend-server/tree/tag62

サーバは動き続ける

バックエンドサーバは起動したあとに動き続けるので、http.ListenAndServe() を実行すると、そこで処理が止まってしまいます。 サーバを起動する前に必要な処理は http.ListenAndServe() よりも前に実行しておきましょう。

http.HandleFunc() について

動画内でも説明したとおり、http.HandleFunc() は第一引数にパスを指定し、第二引数に実行対象の処理を指定します。

https://pkg.go.dev/net/http#HandleFunc

第二引数である実行対象の処理は以下のような定義になっていて、ResponseWrite, Request を引数に持つ func である必要があります。

func HandleFunc(pattern string, handler func(ResponseWriter, *Request))

なので、バックエンドサーバでは以下のように "ResponseWrite, Request を引数に持つ func" を定義して、それを HandleFunc() に指定しています。

func countHanlder(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, count)
}