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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-23 08:11:10620ブラウズ

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 までご連絡ください。