首頁 > 後端開發 > Golang > 主體

當我發送'GET”請求時,在 Golang 中返回'404 頁面未找到”

WBOY
發布: 2024-02-12 22:54:08
轉載
910 人瀏覽過

当我发送“GET”请求时,在 Golang 中返回“404 页面未找到”

php小編百草在介紹Golang中的請求處理時,強調了當發送GET請求時,可能會遇到的404頁面未找到的問題。 Golang作為一種高效且強大的程式語言,可以透過適當的處理來解決這個問題,確保使用者能夠得到正確的回應。在編寫程式碼時,需要注意使用適當的錯誤處理機制,以及正確的路徑和路由配置,以避免404錯誤的發生。這樣,使用者就能夠享受到更好的網頁瀏覽體驗。

問題內容

我是 golang 新手。我嘗試使用 golang 編寫一個 api 伺服器,而不使用任何 http 框架(echo、gin 等)。我寫了“post”端點,但我的“get”端點沒有回應。我嘗試編寫另一個名為“ping”的獲取端點,它正在工作。我的捲髮

curl --location 'http://localhost:8080/users/45254424-5be1-487d-9131-bad3b2f7791c'
登入後複製

我的處理程序

func (u userhandler) getbyid(writer http.responsewriter, request *http.request) {
    id := strings.trimprefix(request.url.path, "/users/")
    user := u.userservice.getbyid(uuid.must(uuid.parse(id)))
    writer.header().set("content-type", "application/json")
    json.newencoder(writer).encode(user)
}
登入後複製

我的主要方法

postgresConnection := db.NewDb()
userRepository := repository.NewUserRepository(postgresConnection)
userService := service.NewUserService(userRepository)
userHandler := handlers.NewUserHandler(userService)

mux := http.NewServeMux()
mux.HandleFunc("/users", func(writer http.ResponseWriter, request *http.Request) {
    if request.Method == "POST" {
        userHandler.Create(writer, request)
    } else {
        http.Error(writer, "Invalid request method", http.StatusMethodNotAllowed)
    }
})
mux.HandleFunc("/users/:id", func(writer http.ResponseWriter, request *http.Request) {
    if request.Method == "GET" {
        userHandler.GetById(writer, request)
    } else {
        http.Error(writer, "Invalid request method", http.StatusMethodNotAllowed)
    }
})
mux.HandleFunc("/ping", PingHandler)

err := http.ListenAndServe(":8080", mux)
log.Fatal(err)
登入後複製

解決方法

  • 註冊處理程序時,將模式參數 /users/:id 變更為 /users/
mux.HandleFunc("/users/", func(writer http.ResponseWriter, request *http.Request) {
     id := strings.TrimPrefix(request.URL.Path, "/users/")

     ...
})
登入後複製

注意:有許多第三方函式庫可以幫助您編寫更具可讀性和更有效率的 http 伺服器。

範例

以上是當我發送'GET”請求時,在 Golang 中返回'404 頁面未找到”的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板