同じポートで異なるパターンで Web ページと API ルートを提供する
Web アプリケーションでは、多くの場合、静的 Web ページと静的な Web ページの両方を提供することが望まれます。 API は同じポート アドレスを使用してルーティングします。これを実現するには、net/http パッケージが提供するパターン マッチング機能を利用できます。
ルート URL (「/」) のファイル ハンドラーを登録すると、指定されたディレクトリから静的コンテンツが提供されます。例:
fs := http.FileServer(http.Dir("server/webapps/play_maths")) http.Handle("/", fs)
API ルートを提供するには、mux.Router のようなルーターを使用して別のハンドラーを作成できます。例:
func UserRoutes() *mux.Router { router := mux.NewRouter().StrictSlash(true) router.HandleFunc("/user/create", api.CreateUser) router.HandleFunc("/user/get/all", api.GetAllUsers) return router }
この API ルーターを特定のパターンで登録すると、異なるパスの API リクエストを処理できるようになります。例:
http.Handle("/api", UserRoutes())
net/http のドキュメントによると、長いパターンが短いパターンよりも優先されます。これは、「/api/」で始まるリクエストは API ルーターによって処理され、その他のリクエストはファイル ハンドラーに送られることを意味します。
このアプローチでは、潜在的な競合を防ぐために慎重な考慮が必要であることに注意してください。たとえば、静的ファイルが「/api/」ディレクトリ内に配置された場合、API パターンが優先されるため、それらのファイルにはアクセスできなくなります。
以上がWeb ページと API ルートを同じポート上で異なるパターンで提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。