Je cherche à trouver la meilleure façon de gérer les demandes vers /
et seulement /
en Go et de gérer différentes méthodes de différentes manières. Voici ce que j'ai trouvé de mieux :
package main
import (
"fmt"
"html"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" {
http.NotFound(w, r)
return
}
if r.Method == "GET" {
fmt.Fprintf(w, "GET, %q", html.EscapeString(r.URL.Path))
} else if r.Method == "POST" {
fmt.Fprintf(w, "POST, %q", html.EscapeString(r.URL.Path))
} else {
http.Error(w, "Méthode de requête invalide.", 405)
}
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
Est-ce idiomatique en Go ? Est-ce le mieux que je puisse faire avec la librairie http standard ? Je préférerais vraiment faire quelque chose comme http.HandleGet("/", handler)
comme dans express ou Sinatra. Y a-t-il un bon framework pour écrire des services REST simples ? web.go semble attrayant mais semble stagnant.
Merci pour vos conseils.