Maison >développement back-end >Golang >Comment utiliser Golang pour créer une application Web simple et efficace

Comment utiliser Golang pour créer une application Web simple et efficace

PHPz
PHPzoriginal
2023-04-25 10:33:121096parcourir

En tant que développeur Golang, nous devons non seulement maîtriser la syntaxe de base du langage Golang, mais également comprendre la construction du framework Golang, car cela est très important pour nous de développer des applications de haute qualité. Dans cet article, je vais partager comment utiliser Golang pour créer une application Web simple et efficace.

Tout d'abord, nous devons choisir un framework Web Golang. Il existe de nombreux excellents frameworks Web parmi lesquels choisir sur le marché du Golang. Comme le gin, le beego, l'écho, etc. Lorsque vous choisissez un framework, vous devez décider en fonction des besoins spécifiques de votre projet. Dans cet article, j'ai choisi le framework gin pour la construction.

Étape 1 : Installer le framework GIN

Avant d'utiliser golang, vous devez installer le framework correspondant. Utilisez l'outil officiel de gestion de paquets de Golang pour installer le framework gin :

go get -u github.com/gin-gonic/gin

Étape 2 : Créer un serveur Web simple

Après avoir installé le framework gin, nous devons créer un serveur Web de base. Créez un fichier main.go et ajoutez le code suivant dans le fichier :

package main

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

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "hello gin",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

Ce code implémente un service Web très simple. Parmi eux, nous avons utilisé la fonction Default() de gin pour créer une instance de gin par défaut. La fonction r.GET() est utilisée pour enregistrer une route de requête GET, c'est-à-dire que lorsque quelqu'un envoie une requête GET à la route racine, nous renverrons un message "hello gin". Enfin, nous utilisons la fonction r.Run() pour démarrer le service.

Étape 3 : Définir une structure

Dans le développement réel, nous devons classer les paramètres de requête et les données de réponse. Par conséquent, nous devons définir une structure pour représenter le contenu de la demande et de la réponse. Ajoutez le code suivant au fichier main.go :

type Request struct {
    Name string `json:"name" binding:"required"`
}

type Response struct {
    Message string `json:"message"`
}

func main() {
    r := gin.Default()
    r.POST("/", func(c *gin.Context) {
        var req Request
        if err := c.ShouldBindJSON(&req); err != nil {
            c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
            return
        }
        res := Response{Message: "hello " + req.Name}
        c.JSON(http.StatusOK, res)
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

Parmi eux, nous définissons deux structures Request et Response. La structure Request contient un champ Nom, qui est utilisé pour représenter le nom d'utilisateur dans la demande. La structure Réponse contient un champ Message pour représenter le message de réponse. Dans la fonction r.POST(), nous utilisons d'abord la fonction c.ShouldBindJSON() pour lier les données de la requête à la structure Request. Si quelque chose ne va pas, nous renverrons une erreur 400 Bad Request. Si la liaison réussit, nous renvoyons un message de réponse avec le champ de nom.

Étape 4 : Utiliser un middleware

Dans le développement réel, nous devons utiliser un middleware pour traiter les demandes. Par exemple, nous devons gérer les en-têtes de requête, nous devons authentifier chaque requête, etc. Le framework gin possède de nombreux middlewares intégrés et peut utiliser des middlewares tiers. Dans cet exemple, nous utilisons le middleware Logger() intégré à gin. Créez le fichier main.go et ajoutez le code suivant dans le fichier :

func main() {
    r := gin.New()
    r.Use(gin.Logger())
    r.POST("/", func(c *gin.Context) {
        var req Request
        if err := c.ShouldBindJSON(&req); err != nil {
            c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
            return
        }
        res := Response{Message: "hello " + req.Name}
        c.JSON(http.StatusOK, res)
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

Dans cet exemple, nous créons une nouvelle instance de gin et utilisons le middleware Logger() de gin. Ce middleware enregistrera des journaux détaillés de chaque demande. Ceci est très utile pour le débogage dans notre développement.

Étape 5 : Serveur de fichiers statiques

Si nous devons fournir un accès à des fichiers statiques, tels que des images, des feuilles de style, des scripts, etc., nous pouvons utiliser le middleware de traitement de fichiers statiques fourni par le framework gin. Ajoutez le code suivant au fichier main.go :

func main() {
    r := gin.New()
    r.Use(gin.Logger())
    r.LoadHTMLGlob("templates/*")
    r.Static("/static", "./public")
    r.GET("/", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.tmpl", gin.H{})
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

Dans le code ci-dessus, nous utilisons la fonction r.LoadHTMLGlob() pour charger le modèle HTML dans le programme. Nous utilisons la fonction r.Static() pour mapper tous les fichiers statiques (tels que les images, les feuilles de style et les scripts) du répertoire public vers la route /static. Dans la fonction r.GET(), nous utilisons la fonction c.HTML() pour renvoyer le modèle HTML à l'utilisateur.

Conclusion

Grâce à l'introduction de cet article, nous pouvons apprendre à utiliser le framework gin pour créer une application Web simple et efficace. On voit que développer des applications web avec golang est très simple et efficace. Bien entendu, nous pouvons également utiliser davantage de middleware gin pour développer en fonction des exigences du projet. J'espère que cet article pourra être utile aux lecteurs qui apprennent le développement du 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!

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
Article précédent:Que peut faire Golang ?Article suivant:Que peut faire Golang ?