Maison >développement back-end >Golang >Explication détaillée de la fonction de routage du framework Gin

Explication détaillée de la fonction de routage du framework Gin

王林
王林original
2023-06-22 09:30:112206parcourir

Gin est un framework web léger doté de puissantes fonctions de routage. Dans cet article, nous en apprendrons davantage sur les fonctions de routage du framework Gin, notamment l'enregistrement des routes, l'acquisition des paramètres, le regroupement des routes, etc.

  1. Enregistrement d'itinéraire

L'enregistrement d'itinéraire fait référence au processus d'association de chemins de requête HTTP et de fonctions de traitement. Dans le framework Gin, le processus d'enregistrement de l'itinéraire est très simple. Normalement, nous pouvons utiliser la méthode Router du framework Gin pour enregistrer les routes. Par exemple :

func main() {
  r := gin.Default()
  r.GET("/hello", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello World!")
  })
  r.Run()
}

Dans le code ci-dessus, nous avons enregistré une route pour les requêtes GET avec le chemin /hello. Lorsque l'utilisateur accède au chemin, le framework Gin appelle la fonction de gestionnaire enregistrée et renvoie la chaîne "Hello World!".

  1. Acquisition de paramètres

Dans le développement réel, nous avons généralement besoin d'obtenir certains paramètres de l'URL pour le traitement associé. Dans le framework Gin, obtenir des paramètres est très pratique. Par exemple :

func main() {
  r := gin.Default()
  r.GET("/hello/:name", func(c *gin.Context) {
    name := c.Param("name")
    c.String(http.StatusOK, "Hello %s!", name)
  })
  r.Run()
}

Dans le code ci-dessus, nous définissons un paramètre, à savoir ":name", via l'enregistrement de l'itinéraire. Lorsque l'utilisateur accède via le chemin de /hello/{name}, le framework Gin obtiendra la valeur de paramètre correspondante en fonction du nom du paramètre, qui peut être obtenu via la méthode c.Param(). Dans l'exemple ci-dessus, nous prenons le paramètre name transmis par l'utilisateur et renvoyons un message d'accueil avec ce nom.

De plus, nous pouvons également obtenir les paramètres de requête dans l'URL via la méthode Query. Par exemple :

func main() {
  r := gin.Default()
  r.GET("/user", func(c *gin.Context) {
    name := c.Query("name")
    age := c.Query("age")
    c.JSON(http.StatusOK, gin.H{
      "name": name,
      "age": age,
    })
  })
  r.Run()
}

Dans l'exemple ci-dessus, nous avons défini une route /user, obtenu les paramètres de requête dans l'URL via la méthode c.Query() et finalement renvoyé les paramètres de requête au format JSON.

  1. Regroupement d'itinéraires

Le framework Gin prend en charge le regroupement d'itinéraires Plusieurs itinéraires peuvent être regroupés selon certaines règles et peuvent être regroupés via la méthode Groupe. . Par exemple :

func main() {
  r := gin.Default()
  api := r.Group("/api")
  {
    api.GET("/users", func(c *gin.Context) {
      c.String(http.StatusOK, "User List")
    })
    api.GET("/user/:id", func(c *gin.Context) {
      id := c.Param("id")
      c.String(http.StatusOK, "User %s", id)
    })
  }
  r.Run()
}

Dans l'exemple ci-dessus, nous utilisons la méthode Group pour regrouper plusieurs routes et les enregistrer toutes sous le chemin /api. De cette façon, lorsque l'utilisateur accède à /api/users, la première fonction de gestionnaire sera appelée, et lorsque l'utilisateur accédera à /api/{id}, la deuxième fonction de gestionnaire sera appelée.

Le regroupement imbriqué peut également être utilisé dans le regroupement de routage. Par exemple :

func main() {
  r := gin.Default()
  api := r.Group("/api")
  {
    v1 := api.Group("/v1")
    {
      v1.GET("/users", func(c *gin.Context) {
        c.String(http.StatusOK, "User List")
      })
      v1.GET("/user/:id", func(c *gin.Context) {
        id := c.Param("id")
        c.String(http.StatusOK, "User %s", id)
      })
    }
    v2 := api.Group("/v2")
    {
      v2.GET("/users", func(c *gin.Context) {
        c.String(http.StatusOK, "User List v2")
      })
      v2.GET("/user/:id", func(c *gin.Context) {
        id := c.Param("id")
        c.String(http.StatusOK, "User %s v2", id)
      })
    }
  }
  r.Run()
}

Dans l'exemple ci-dessus, nous utilisons deux couches de groupement de routage, et la deuxième couche de groupement de routage est imbriquée par rapport à la première couche de groupement de routage. De cette façon, nous pouvons regrouper et gérer différentes versions d’API.

Summary

Dans cet article, nous présentons en détail les fonctions de routage du framework Gin, y compris l'enregistrement des routes, l'acquisition des paramètres, le regroupement des routes, etc. La fonction de routage du framework Gin est très puissante et simple à utiliser, ce qui nous permet de développer facilement des applications web. J'espère que cet article pourra être utile aux lecteurs.

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