標準ライブラリでルーティングを行う方法を考えていました。リクエストのタイプに応じて他のハンドラー関数を呼び出すハンドラー関数があることは有効ですか?例えば
func main() {
m := http.NewServeMux()
m.HandleFunc("/books", books)
// ...
}
func books(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "GET":
getBooks(w, r)
case "POST":
createBook(w, r)
}
}
これは良い習慣ですか?関数が少しわかりやすいので、カスタムハンドラーを宣言したくありませんでした。
はい、これは完全に有効です。ハンドラーは単なる関数であるため、そうすべきでない理由はありません。実際、これが通常のミドルウェアの実装方法です。
ハンドラー関数には「魔法」はまったくありません。正しいファイル記述子(w http.ResponseWriter
)に書き込んでいる限り、何でもできます。
これは、このパターンを使用することがすべてのアプリケーションにとって必ずしも良いアイデアであることを意味するわけではありません-ルーティングライブラリが理由のために存在します-小さなプログラムではそれはうまく機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加