Heim Backend-Entwicklung Golang Golang lernt die Verwendung des Web-Frameworks Gin

Golang lernt die Verwendung des Web-Frameworks Gin

Jun 24, 2023 am 10:20 AM
golang web框架 gin

Golang lernt die Verwendung des Web-Frameworks Gin

Mit der Entwicklung des Internets sind Webanwendungen zur Standardkonfiguration verschiedener Softwaresysteme geworden. Die serverseitigen Entwicklungssprachen für Webanwendungen werden immer vielfältiger. Unter anderem werden die hohe Leistung und der prägnante Syntaxstil von Golang von Entwicklern zunehmend bevorzugt. In diesem Artikel wird eines der am häufigsten verwendeten Web-Frameworks in Golang vorgestellt: Gin.

1. Was ist Gin? Gin ist ein in der Go-Sprache geschriebenes Webanwendungs-Framework. Es basiert auf dem httprouter-Paket und der net/http-Standardbibliothek und bietet hohe Leistung, Effizienz, Benutzerfreundlichkeit und leistungsstarke Funktionen. Verwenden Sie Gin, um schnell einen Webserver zu erstellen und Funktionen wie RESTful API, Routing-Gruppierung, Middleware, Parameterbindung und Vorlagenrendering zu unterstützen.

2. Installation von Gin

Bevor Sie das Gin-Framework verwenden, müssen Sie zuerst Gin installieren. Zur Installation können Sie die folgende Befehlszeile verwenden:

go get -u github.com/gin-gonic/gin
Nach dem Login kopieren

3. Grundlegende Verwendung von Gin

Im Folgenden zeigen wir anhand eines Beispiels, wie Sie mit Gin einen einfachen Webdienst schreiben.

Importieren Sie das Gin-Paket.
  1. Importieren Sie das Gin-Paket am Anfang der Codedatei:
import "github.com/gin-gonic/gin"
Nach dem Login kopieren

Erstellen Sie eine Gin-Engine.
  1. Verwenden Sie die Methode gin.New(), um eine neue Gin-Engine zu erstellen.
r := gin.New()
Nach dem Login kopieren

Routen definieren
  1. Verwenden Sie die Methoden r.GET(), r.POST(), r.PUT() und r.DELETE(), um Routen zu definieren, wobei der erste Parameter der Routing-Pfad ist und der zweite Der erste Parameter ist die Routing-Verarbeitungsfunktion.
r.GET("/", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello World")
})
Nach dem Login kopieren

Starten Sie den Dienst
  1. Verwenden Sie die Methode r.Run(), um den Dienst zu starten und geben Sie die Dienstadresse und die Portnummer an.
r.Run(":8080")
Nach dem Login kopieren

Der vollständige Code lautet wie folgt:

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")
}
Nach dem Login kopieren

4. Gins Routing

Grundlegendes Routing
  1. In Gin besteht Routing aus Routing-Methoden, Anforderungspfaden und Verarbeitungsfunktionen ., LÖSCHEN, PATCH, KOPF, OPTIONEN usw. Verwenden Sie Methoden wie r.GET(), r.POST(), r.PUT() und r.DELETE(), um Routen zu definieren.
r.GET("/index", func(c *gin.Context) {
    c.String(http.StatusOK, "Hello World")
})
Nach dem Login kopieren

Routen mit Parametern
  1. Verwenden Sie einen Doppelpunkt (:), um Routen mit Parametern zu definieren.
r.GET("/hello/:name", func(c *gin.Context) {
    name := c.Param("name")
    c.String(http.StatusOK, "Hello %s", name)
})
Nach dem Login kopieren

Routen für mehrere Anforderungstypen
  1. Verwenden Sie die Methode r.Handle(), um Routen für mehrere Anforderungstypen zu definieren.
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")
})
Nach dem Login kopieren

Routing-Gruppierung
  1. Verwenden Sie die r.Group()-Methode, um Routing-Gruppierung zu implementieren. Middleware und gemeinsame Routing-Verarbeitungsfunktionen können der Routing-Gruppe hinzugefügt werden.
v1 := r.Group("/v1")
{
    v1.GET("/hello", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello v1")
    })
}
Nach dem Login kopieren

5. Gin-Middleware

Middleware verwenden
  1. Mit der Gin-Middleware können viele nützliche Funktionen erreicht werden, z. Verwenden Sie die Methode r.Use(), um Middleware zu registrieren.
r.Use(gin.Logger())
r.Use(gin.Recovery())
Nach dem Login kopieren

Middleware schreiben
  1. Middleware-Methoden schreiben ist sehr einfach. Sie müssen lediglich eine Funktion mit einem Parameter vom Typ gin.Context erstellen und die Methode c.Next() in der Funktion aufrufen, um die Middleware-Funktion zu implementieren.
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")
})
Nach dem Login kopieren

6. Gin-Parameterbindung

Abfrageparameter binden
  1. Verwenden Sie die Methode c.Query(), um die Abfrageparameter abzurufen.
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)
})
Nach dem Login kopieren

POST-Formular binden
  1. Verwenden Sie die Methode c.PostForm(), um POST-Formulardaten abzurufen.
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,
    })
})
Nach dem Login kopieren

JSON-Daten binden
  1. Verwenden Sie die Methode c.BindJSON(), um JSON-Daten zu binden.
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(),
        })
    }
})
Nach dem Login kopieren

7. Vorlagen-Rendering von Gin

Mit dem Gin-Framework können Vorlagen problemlos gerendert werden und es werden mehrere Vorlagen-Engines wie HTML, JSON, XML usw. unterstützt.

Installieren Sie die Template-Engine.
  1. Verwenden Sie den Befehl „go get“, um die Template-Engine zu installieren.
go get -u github.com/gin-gonic/gin
go get -u github.com/gin-gonic/contrib/jwt
go get -u github.com/jinzhu/gorm
Nach dem Login kopieren

Vorlagen laden
  1. Verwenden Sie die Methode gin.LoadHTMLGlob(), um Vorlagendateien zu laden.
r.LoadHTMLGlob("html/*")
Nach dem Login kopieren

Vorlagen rendern
  1. Verwenden Sie die Methode c.HTML(), um Vorlagen zu rendern.
r.GET("/html", func(c *gin.Context) {
    c.HTML(http.StatusOK, "index.html", gin.H{
        "title": "Welcome Gin Web Framework",
    })
})
Nach dem Login kopieren

8. Fazit

In diesem Artikel werden die grundlegenden Schritte und Techniken zum Erstellen eines Webservers mithilfe des Gin-Frameworks vorgestellt. Die hohe Leistung und der prägnante Syntaxstil von Golang machen es bei Entwicklern bei der Entwicklung von Webdiensten immer beliebter. Ich hoffe, dass dieser Artikel den Entwicklern von Golang-Webservern Inspiration und Hilfe bieten kann.

Das obige ist der detaillierte Inhalt vonGolang lernt die Verwendung des Web-Frameworks Gin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie konfiguriere ich den Verbindungspool für die Golang-Datenbankverbindung? Wie konfiguriere ich den Verbindungspool für die Golang-Datenbankverbindung? Jun 06, 2024 am 11:21 AM

Wie konfiguriere ich den Verbindungspool für die Golang-Datenbankverbindung?

Wie kann ich Dateien mit Golang sicher lesen und schreiben? Wie kann ich Dateien mit Golang sicher lesen und schreiben? Jun 06, 2024 pm 05:14 PM

Wie kann ich Dateien mit Golang sicher lesen und schreiben?

Ähnlichkeiten und Unterschiede zwischen Golang und C++ Ähnlichkeiten und Unterschiede zwischen Golang und C++ Jun 05, 2024 pm 06:12 PM

Ähnlichkeiten und Unterschiede zwischen Golang und C++

Wie steil ist die Lernkurve der Golang-Framework-Architektur? Wie steil ist die Lernkurve der Golang-Framework-Architektur? Jun 05, 2024 pm 06:59 PM

Wie steil ist die Lernkurve der Golang-Framework-Architektur?

Wie generiere ich zufällige Elemente aus einer Liste in Golang? Wie generiere ich zufällige Elemente aus einer Liste in Golang? Jun 05, 2024 pm 04:28 PM

Wie generiere ich zufällige Elemente aus einer Liste in Golang?

Vergleich der Vor- und Nachteile des Golang-Frameworks Vergleich der Vor- und Nachteile des Golang-Frameworks Jun 05, 2024 pm 09:32 PM

Vergleich der Vor- und Nachteile des Golang-Frameworks

Anweisungen zur Verwendung des Golang-Framework-Dokuments Anweisungen zur Verwendung des Golang-Framework-Dokuments Jun 05, 2024 pm 06:04 PM

Anweisungen zur Verwendung des Golang-Framework-Dokuments

Was sind die Best Practices für die Fehlerbehandlung im Golang-Framework? Was sind die Best Practices für die Fehlerbehandlung im Golang-Framework? Jun 05, 2024 pm 10:39 PM

Was sind die Best Practices für die Fehlerbehandlung im Golang-Framework?

See all articles