Lors de l'introduction du traitement des requêtes dans Golang, l'éditeur PHP Baicao a souligné le problème de page 404 non trouvée qui peut être rencontré lors de l'envoi d'une requête GET. Golang, en tant que langage de programmation efficace et puissant, peut résoudre ce problème grâce à un traitement approprié pour garantir que les utilisateurs peuvent obtenir la bonne réponse. Lors de l'écriture du code, vous devez faire attention à l'utilisation de mécanismes de gestion des erreurs appropriés, ainsi qu'à la configuration correcte du chemin et du routage pour éviter les erreurs 404. De cette manière, les utilisateurs peuvent profiter d’une meilleure expérience de navigation sur le Web.
Je suis nouveau sur Golang. J'essaie d'écrire un serveur API en utilisant Golang sans utiliser de framework http (echo, gin, etc.). J'ai écrit le point de terminaison "post" mais mon point de terminaison "get" ne répond pas. J'ai essayé d'écrire un autre point de terminaison appelé "ping" et cela fonctionne. Mes cheveux bouclés
curl --location 'http://localhost:8080/users/45254424-5be1-487d-9131-bad3b2f7791c'
Mon gestionnaire
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) }
Ma méthode principale
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/") ... })
REMARQUE : Il existe de nombreuses bibliothèques tierces qui peuvent vous aider à écrire des serveurs http plus lisibles et plus efficaces.
Exemple
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!