Maison >développement back-end >Golang >Comment modifier le routage dans Golang
Dans les applications Web, le routage fait référence aux extraits de code qui localisent l'application en fonction de l'URL demandée. Il est très simple de modifier le routage dans Golang. Cet article explique comment utiliser Golang pour modifier le routage afin de créer votre propre application Web.
Pour comprendre comment modifier le routage, nous avons besoin d'une base de code pour gérer les requêtes HTTP. Le package net/http de la bibliothèque standard peut être utilisé à cet effet. Nous devons également utiliser le package gorilla/mux, qui fournit un mécanisme de routage plus avancé.
Tout d’abord, nous devons installer le package gorilla/mux. Installez à l'aide de la commande suivante :
go get -u github.com/gorilla/mux
Ensuite, nous examinerons un exemple utilisant le package gorilla/mux qui contient deux routes :
package main import ( "encoding/json" "log" "net/http" "github.com/gorilla/mux" ) type Product struct { ID string `json:"id"` Name string `json:"name"` Price float64 `json:"price"` } var products []Product func getProducts(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(products) } func getProduct(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") params := mux.Vars(r) for _, item := range products { if item.ID == params["id"] { json.NewEncoder(w).Encode(item) return } } json.NewEncoder(w).Encode(&Product{}) } func main() { router := mux.NewRouter() products = append(products, Product{ID: "1", Name: "Product 1", Price: 29.99}) products = append(products, Product{ID: "2", Name: "Product 2", Price: 39.99}) products = append(products, Product{ID: "3", Name: "Product 3", Price: 49.99}) router.HandleFunc("/products", getProducts).Methods("GET") router.HandleFunc("/products/{id}", getProduct).Methods("GET") log.Fatal(http.ListenAndServe(":8000", router)) }
Dans l'exemple ci-dessus, nous avons créé deux fonctions de gestionnaire : getProducts et getProduct. La première fonction récupère tous les produits et les renvoie au client. La deuxième fonction obtient un seul produit, qui peut être recherché par ID. Nous définissons également des routes pour chaque fonction de gestionnaire, cela peut être fait en utilisant les méthodes router.HandleFunc et .Methods.
Nous pouvons voir que dans la deuxième route, il y a un paramètre {id}, qui sert à transmettre l'ID dans l'URL. Ce paramètre est obtenu à partir de l'URL via la fonction mux.Vars.
Enfin, la fonction main définit le serveur HTTP et son port, qui utilise le package gorilla/mux pour créer des routes. Lorsque nous exécutons l'application, elle démarre un serveur HTTP et écoute sur le port 8000.
Maintenant que nous avons créé notre route et défini la fonction de gestionnaire, il ne nous reste plus qu'à utiliser les fonctions http.HandleFunc et http.ListenAndServe pour écouter sur le port 8000 toutes les requêtes.
Résumé
Grâce à l'exemple ci-dessus, nous pouvons voir qu'il est très facile de modifier le routage à l'aide de Golang et que les fonctions de routage avancées peuvent être plus facilement implémentées à l'aide du package gorilla/mux.
Nous pouvons utiliser des méthodes similaires pour ajouter de nouveaux itinéraires ou modifier des itinéraires existants. Cela nous permet de créer des applications Web complexes rapidement et sans trop de codage ou de courbe d'apprentissage.
Donc, si vous créez une application Web, je vous recommande d'utiliser Golang et le package gorilla/mux pour modifier le routage et gérer les requêtes HTTP.
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!