Maison > développement back-end > Golang > le corps du texte

Golang apprend à utiliser le framework Web gin

王林
Libérer: 2023-06-24 10:20:31
original
2530 Les gens l'ont consulté

Golang apprend à utiliser le framework Web gin

Avec le développement d'Internet, les applications Web sont devenues la configuration standard de divers systèmes logiciels. Les langages de développement côté serveur pour les applications web se diversifient de plus en plus. Parmi eux, les hautes performances et le style de syntaxe concis de Golang sont de plus en plus appréciés par les développeurs. Cet article présentera l'un des frameworks Web couramment utilisés dans Golang : gin.

1. Qu'est-ce que le gin

gin est un framework d'application web écrit en langage Go. Il est basé sur le package httprouter et la bibliothèque standard net/http, offrant des performances élevées, une efficacité, une facilité d'utilisation et des fonctions puissantes. Utilisez gin pour créer rapidement un serveur Web et prendre en charge des fonctions telles que l'API RESTful, le regroupement de routage, le middleware, la liaison de paramètres et le rendu de modèles.

2. Installation de gin

Avant d'utiliser le framework gin, vous devez d'abord installer gin. Vous pouvez utiliser la ligne de commande suivante pour installer :

go get -u github.com/gin-gonic/gin
Copier après la connexion

3 Utilisation de base de gin

Ci-dessous, nous utilisons un exemple pour montrer comment utiliser gin pour écrire un site Web simple. service.

  1. Importer le package de gin

Importer le package de gin en tête du fichier de code :

import "github.com/gin-gonic/gin"
Copier après la connexion
    #🎜🎜 # Créer un moteur gin
Utilisez la méthode gin.New() pour créer un nouveau moteur gin.

r := gin.New()
Copier après la connexion

    Définir les routes
Utilisez r.GET(), r.POST(), r.PUT() et r.DELETE( ) méthode pour définir le routage, où le premier paramètre est le chemin de routage et le deuxième paramètre est la fonction de traitement du routage.

r.GET("/", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello World")
})
Copier après la connexion

    Démarrer le service
Utilisez la méthode r.Run() pour démarrer le service et spécifiez l'adresse du service et le numéro de port.

r.Run(":8080")
Copier après la connexion

Le code complet est le suivant :

package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.New()

    r.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello World")
    })

    r.Run(":8080")
}
Copier après la connexion

Quatrièmement, le routage du gin

    Routage de base
  1. #🎜🎜 ## 🎜🎜#Dans gin, le routage est composé de méthodes de routage, de chemins de requête et de fonctions de traitement. Les méthodes de routage incluent GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, etc. Utilisez des méthodes telles que r.GET(), r.POST(), r.PUT() et r.DELETE() pour définir des itinéraires.
  2. r.GET("/index", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello World")
    })
    Copier après la connexion

Route avec paramètres

  1. Utilisez les deux points (:) pour définir un itinéraire avec des paramètres.
  2. r.GET("/hello/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(http.StatusOK, "Hello %s", name)
    })
    Copier après la connexion

Routage pour plusieurs types de requêtes

  1. Utilisez la méthode r.Handle() pour définir le routage pour plusieurs types de requêtes.
  2. r.Handle("GET", "/hello", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello World")
    })
    
    r.Handle("POST", "/hello", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello POST")
    })
    Copier après la connexion

Regroupement de routage

  1. Utilisez la méthode r.Group() pour implémenter le regroupement de routage. Un middleware et des routes partagées peuvent être ajoutés au routage. groupe.
  2. v1 := r.Group("/v1")
    {
        v1.GET("/hello", func(c *gin.Context) {
            c.String(http.StatusOK, "Hello v1")
        })
    }
    Copier après la connexion
5. Middleware Gin

Utiliser le middleware

  1. L'utilisation du middleware gin peut réaliser de nombreuses choses utiles. Des fonctionnalités telles que authentification, journalisation, mise en cache, analyse des performances, etc. Utilisez la méthode r.Use() pour enregistrer le middleware.
  2. r.Use(gin.Logger())
    r.Use(gin.Recovery())
    Copier après la connexion

Ecriture d'un middleware

  1. La méthode d'écriture d'un middleware est très simple Il vous suffit de créer une fonction avec un paramètre de type gin. Context. et appelez la méthode c.Next() dans la fonction pour réaliser la fonction de middleware.
  2. func Auth() gin.HandlerFunc {
        return func(c *gin.Context) {
            if c.GetHeader("Authorization") != "token" {
                c.AbortWithStatus(http.StatusUnauthorized)
            }
            c.Next()
        }
    }
    
    r.GET("/hello", Auth(), func(c *gin.Context) {
        c.String(http.StatusOK, "Hello World")
    })
    Copier après la connexion
Six, liaison des paramètres gin

Bind Query settings

  1. Utilisez la méthode c.Query() pour obtenir paramètres de requête.
  2. r.GET("/hello", func(c *gin.Context) {
        name := c.Query("name")
        age := c.Query("age")
        c.String(http.StatusOK, "name: %s, age: %s", name, age)
    })
    Copier après la connexion

Lier le formulaire POST

  1. Utilisez la méthode c.PostForm() pour obtenir les données du formulaire POST.
  2. r.POST("/login", func(c *gin.Context) {
        username := c.PostForm("username")
        password := c.PostForm("password")
        c.JSON(http.StatusOK, gin.H{
            "username": username,
            "password": password,
        })
    })
    Copier après la connexion

Lier les données JSON

  1. Utilisez la méthode c.BindJSON() pour lier les données JSON.
  2. type User struct {
        Name     string `json:"name"`
        Password string `json:"password"`
    }
    
    r.POST("/login", func(c *gin.Context) {
        var user User
        if err := c.BindJSON(&user); err == nil {
            c.JSON(http.StatusOK, gin.H{
                "name":     user.Name,
                "password": user.Password,
            })
        } else {
            c.JSON(http.StatusBadRequest, gin.H{
                "error": err.Error(),
            })
        }
    })
    Copier après la connexion
7. Rendu de modèle Gin

L'utilisation du framework gin peut faciliter le rendu de modèle et prend en charge plusieurs moteurs de modèles, tels que HTML, JSON, XML, etc.

Installer le moteur de modèle

  1. Utilisez la commande go get pour installer le moteur de modèle.
  2. go get -u github.com/gin-gonic/gin
    go get -u github.com/gin-gonic/contrib/jwt
    go get -u github.com/jinzhu/gorm
    Copier après la connexion

Load template

  1. Utilisez la méthode gin.LoadHTMLGlob() pour charger le fichier modèle.
  2. r.LoadHTMLGlob("html/*")
    Copier après la connexion

Modèle de rendu

  1. Utilisez la méthode c.HTML() pour rendre le modèle.
  2. r.GET("/html", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.html", gin.H{
            "title": "Welcome Gin Web Framework",
        })
    })
    Copier après la connexion
    8. Conclusion

    Cet article présente les étapes et techniques de base pour utiliser le framework gin pour créer un serveur Web. Les hautes performances et le style de syntaxe concis de Golang le rendent de plus en plus populaire parmi les développeurs dans le développement de services Web. J'espère que cet article pourra apporter de l'inspiration et aider les développeurs de serveurs Web Golang.

    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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!