Maison >développement back-end >Golang >Golang apprend à utiliser le framework Web gin
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
3 Utilisation de base de gin
Ci-dessous, nous utilisons un exemple pour montrer comment utiliser gin pour écrire un site Web simple. service.
Importer le package de gin en tête du fichier de code :
import "github.com/gin-gonic/gin"
r := gin.New()
r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello World") })
r.Run(":8080")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") }Quatrièmement, le routage du gin
r.GET("/index", func(c *gin.Context) { c.String(http.StatusOK, "Hello World") })
Route avec paramètres
r.GET("/hello/:name", func(c *gin.Context) { name := c.Param("name") c.String(http.StatusOK, "Hello %s", name) })
Routage pour plusieurs types de requêtes
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") })
Regroupement de routage
v1 := r.Group("/v1") { v1.GET("/hello", func(c *gin.Context) { c.String(http.StatusOK, "Hello v1") }) }
Utiliser le middleware
r.Use(gin.Logger()) r.Use(gin.Recovery())
Ecriture d'un middleware
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") })
Bind Query settings
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) })
Lier le formulaire POST
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, }) })
Lier les données JSON
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(), }) } })
Installer le moteur de modèle
go get -u github.com/gin-gonic/gin go get -u github.com/gin-gonic/contrib/jwt go get -u github.com/jinzhu/gorm
Load template
r.LoadHTMLGlob("html/*")
Modèle de rendu
r.GET("/html", func(c *gin.Context) { c.HTML(http.StatusOK, "index.html", gin.H{ "title": "Welcome Gin Web Framework", }) })
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!