ホームページ > バックエンド開発 > Golang > 異なるハンドル パターンを使用して同じポート上で Web ページと API ルートを提供するにはどうすればよいですか?

異なるハンドル パターンを使用して同じポート上で Web ページと API ルートを提供するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-23 08:11:10
オリジナル
628 人が閲覧しました

How to Serve Web Pages and API Routes on the Same Port with Different Handle Patterns?

異なるハンドル パターンを使用して同じポートで Web ページと API ルートを提供する

Web アプリケーションのシナリオでは、静的 Web ページと API の両方を提供すると便利な場合があります同じポートアドレス上のルート。これにより、合理化されたアーキテクチャと効率的なリソース利用が可能になります。異なるハンドル パターンを使用してこれを実現するには、次の手順に従います。

1.ファイル ハンドラーの登録

静的ファイルを提供するファイル サーバーを登録します。この例では、ルート パス (/):

fs := http.FileServer(http.Dir("server/webapps/play_maths"))
http.Handle("/", fs)
ログイン後にコピー

2 にある "server/webapps/play_maths" ディレクトリからファイルを提供するために使用されます。 API ハンドラーの登録

API ルートを処理するルーターを作成します。この場合、UserRoutes() はユーザーの作成とすべてのユーザーの取得のためのルートを定義します:

func UserRoutes() *mux.Router {
    router := mux.NewRouter().StrictSlash(true)
    router.HandleFunc("/user/create", api.CreateUser)
    router.HandleFunc("/user/get/all", api.GetAllUsers)
    return router
}
ログイン後にコピー

3。 API ハンドラーをパスにアタッチ

API ルーターを特定のルート パス (「/api/」など) に登録します。これにより、「/api/」で始まるすべてのリクエストが API ルートによって処理されるようになります:

http.Handle("/api/", UserRoutes())
ログイン後にコピー

注: ルート登録の順序は重要です。長いパターンは短いパターンより優先されます。したがって、一般的なファイル ハンドラーの前に、より具体的な API ルートを登録することが重要です。これにより、API ルートへのリクエストがファイル ハンドラーによって傍受されることがなくなります。

これらの手順に従うことで、異なるハンドル パターンを維持しながら、同じポート アドレスで静的 Web ページと API ルートの両方を提供できます。これにより、複数のサーバー インスタンスの必要性が減り、柔軟性が提供され、パフォーマンスが向上します。

以上が異なるハンドル パターンを使用して同じポート上で Web ページと API ルートを提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート