Maison >développement back-end >Golang >Comment puis-je utiliser des expressions régulières pour un routage d'URL flexible dans Go ?
Utilisation d'expressions régulières pour mapper des URL dans Go
Dans Go, l'utilisation d'expressions régulières pour faire correspondre les URL permet un routage d'URL plus flexible et plus expressif. Cependant, s'appuyer sur la fonction http.HandleFunc() à cette fin n'est pas idéal.
La fonction http.HandleFunc() est principalement destinée à faire correspondre des chemins fixes ou des sous-arbres enracinés. Il ne prend pas en charge l'utilisation d'expressions régulières. Pour y parvenir, vous devez enregistrer un gestionnaire dans un sous-arbre racine (par exemple, /), puis implémenter une correspondance et un routage d'expressions régulières personnalisés au sein du gestionnaire.
Considérez l'exemple suivant :
import ( "fmt" "net/http" "regexp" ) var rNum = regexp.MustCompile(`\d`) // Matches URLs with digits var rAbc = regexp.MustCompile(`abc`) // Matches URLs containing "abc" func main() { http.HandleFunc("/", route) http.ListenAndServe(":8080", nil) } func route(w http.ResponseWriter, r *http.Request) { switch { case rNum.MatchString(r.URL.Path): digits(w, r) case rAbc.MatchString(r.URL.Path): abc(w, r) default: w.Write([]byte("Unknown Pattern")) } } func digits(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Has digits")) } func abc(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Has abc")) }
Ce code :
Vous pouvez également utiliser des bibliothèques externes telles que Gorilla MUX pour obtenir un routage d'URL plus avancé et plus polyvalent. capacités.
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!