Maison > développement back-end > Golang > Comment modifier le routage dans Golang

Comment modifier le routage dans Golang

PHPz
Libérer: 2023-04-14 10:33:46
original
831 Les gens l'ont consulté

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
Copier après la connexion

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))
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal