Maison  >  Article  >  développement back-end  >  Comment gérer les chemins d'URL arbitraires dans Go sans itinéraires prédéfinis ?

Comment gérer les chemins d'URL arbitraires dans Go sans itinéraires prédéfinis ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 08:59:02416parcourir

How to Handle Arbitrary URL Paths in Go Without Predefined Routes?

Personnalisation du routage d'URL dans Go

Lors de la création d'applications Web dans Go, il est courant de définir des itinéraires prédéfinis pour des URL spécifiques. Cependant, il existe des cas où vous devrez peut-être lire et gérer des chemins d'URL arbitraires sans itinéraires prédéterminés.

Lecture et impression des paramètres à partir d'une URL dynamique

Pour lire le " any_name" à partir d'un chemin d'URL tel que "example.com/person/(any_name)", pensez à utiliser le package gorilla/mux populaire. Voici comment vous pouvez l'implémenter :

<code class="go">import (
    "fmt"
    "net/http"
    "github.com/gorilla/mux"
)

func main() {
    // Create a new router
    r := mux.NewRouter()

    // Define a route handler for the dynamic URL pattern
    r.HandleFunc("/person/{name}", func(w http.ResponseWriter, r *http.Request) {
        // Get the "name" parameter from the URL
        vars := mux.Vars(r)
        name := vars["name"]

        // Print the name to the response
        fmt.Fprintf(w, "Hello, %s!", name)
    })

    // Start the HTTP server
    http.ListenAndServe(":8080", r)
}</code>

Comment ça marche

  • mux.NewRouter() crée un nouveau routeur Gorilla Mux.
  • r.HandleFunc("/person/{name}", ...) définit une route pour les URL correspondant au modèle "/person/(any_name)".
  • La fonction de gestionnaire de route reçoit http.ResponseWriter et *http.Request comme arguments.
  • mux.Vars(r) récupère une carte des paramètres de chemin de la requête.
  • vars["name"] obtient la valeur du "name" paramètre.
  • fmt.Fprintf(w, ...) écrit le nom dans le corps de la réponse.

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!

Déclaration:
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