Handlerはきちんとreturnしないといけない
たいして躓いたわけではないが、MiddelewareHandlerを定義するときはきちんとreturnしておかないと、不要なコードが実行されてしまうということ。
func loggingMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log.Println("メインのHandlerの前にここが実行されて次の制御に移るわけだが")
if true {
next.ServeHTTP(w, r)
log.Println("ここで終わってくれなくて")
//return 終わらせたければしっかりreturnしないといけない
}
log.Println("その制御から戻ってきてこのコードは実行されてしまう")
return
})
}