首頁 >後端開發 >Golang >如何在 Go 中使用不同的句柄模式在同一連接埠上提供網頁和 API 路由?

如何在 Go 中使用不同的句柄模式在同一連接埠上提供網頁和 API 路由?

Barbara Streisand
Barbara Streisand原創
2024-11-20 14:21:17644瀏覽

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

在同一連接埠上使用不同的句柄模式提供網頁和API 路由

在網頁和API 路由都需要的Web 應用程式中要在同一連接埠上提供服務,可以使用Go 標準庫提供的net/http 套件來實現這一點。關鍵原則是較長模式優先於較短模式。

考慮以下程式碼片段:

fs := http.FileServer(http.Dir("server/webapps/play_maths"))
http.Handle("/", fs) // Serves static web pages from the specified directory

http.Handle("/api", api.UserRoutes()) // Handles API routes using the UserRoutes function

在此範例中,檔案處理程序註冊為根URL 路徑“/ ”,這表示它將處理任何與較長模式不匹配的請求。然後為“/api”路徑註冊 API 路由處理程序。由於“/api”的模式比“/”更長,因此任何以“/api”開頭的請求都會定向到 API 路由處理程序,而所有其他請求將轉到文件處理程序。

注意確保「/api」目錄中不存在任何檔案非常重要,因為由於優先規則,它們將無法存取。透過利用模式優先權功能,可以使用不同的處理程序在同一連接埠上提供網頁和 API 路由。

以上是如何在 Go 中使用不同的句柄模式在同一連接埠上提供網頁和 API 路由?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn