こんにちは、プログラマー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)
}