When php editor Baicao introduced request processing in Golang, he emphasized the 404 page not found problem that may be encountered when sending a GET request. Golang, as an efficient and powerful programming language, can solve this problem through appropriate processing to ensure that users can get the correct response. When writing code, you need to pay attention to using appropriate error handling mechanisms, as well as correct path and routing configuration to avoid 404 errors. In this way, users can enjoy a better web browsing experience.
I am new to golang. I try to write an api server using golang without using any http framework (echo, gin, etc.). I wrote the "post" endpoint but my "get" endpoint is not responding. I tried writing another get endpoint called "ping" and it is working. My curly hair
curl --location 'http://localhost:8080/users/45254424-5be1-487d-9131-bad3b2f7791c'
My handler
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) }
My main method
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
to /users/
. mux.HandleFunc("/users/", func(writer http.ResponseWriter, request *http.Request) { id := strings.TrimPrefix(request.URL.Path, "/users/") ... })
Note: There are many third-party libraries that can help you write more readable and efficient http servers.
Example
The above is the detailed content of Returning '404 Page Not Found' in Golang when I send a 'GET' request. For more information, please follow other related articles on the PHP Chinese website!