Heim  >  Artikel  >  Backend-Entwicklung  >  Erste Schritte mit dem Golang Learning Web Framework

Erste Schritte mit dem Golang Learning Web Framework

王林
王林Original
2023-06-24 08:33:222010Durchsuche

Golang ist eine Programmiersprache mit hoher Effizienz und hoher Parallelität. Immer mehr Entwickler beginnen, Golang zum Erstellen verschiedener Arten von Anwendungen zu verwenden. Unter diesen ist die Webanwendung eines der häufigsten Anwendungsszenarien in Golang. In diesem Artikel werden einige häufig verwendete Web-Frameworks in Golang und ihre grundlegende Verwendung vorgestellt.

1. Common Golang Web Framework

  1. Gin

Gin ist ein schnelles und effizientes Web-Framework, das umfangreiche Funktionen bietet und eine gute Leistung bietet. Das API-Design von Gin ist einfach und leicht zu verstehen, sodass Gin sich sehr gut zum Erstellen von REST-APIs und Microservice-Anwendungen eignet. Gin bietet allgemeine Webfunktionen wie Middleware, Routing-Gruppierung und JSON/XML-Serialisierung.

  1. Beego

Beego ist ein vollständiges Web-Framework, das gängige Webkomponenten wie Routing, Middleware, Vorlagenrendering und ORM umfasst und eine Reihe von Funktionen bereitstellt, die für die Entwicklung von Webanwendungen erforderlich sind. Beego kann problemlos umfangreiche Webanwendungen erstellen und unterstützt RESTful API, Websocket und andere Funktionen.

  1. Echo

Echo ist ein leichtes, leistungsstarkes und einfach zu erweiterndes Webframework, das Standardbibliotheken und einige Pakete von Drittanbietern verwendet, um einige Funktionen bereitzustellen, einschließlich Routing, Middleware, Vorlagenrendering usw. Die Leistung von Echo ist sehr gut und es eignet sich sehr gut zum Erstellen von RESTful-APIs und Microservices.

2. Erste Schritte mit dem Gin-Framework

Wir wählen Gin als erstes Framework, das wir vorstellen möchten. Lassen Sie uns sehen, wie man Gin zum Erstellen einer einfachen Webanwendung verwendet.

  1. Gin installieren

Sie können den folgenden Befehl verwenden, um das Gin-Framework zu installieren:

go get -u github.com/gin-gonic/gin
  1. Hello World

Hier ist ein Beispiel für Hello World, das mit dem Gin-Framework erstellt wurde:

package main

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

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.String(200, "Hello, world!")
    })
    r.Run()
}

Zuerst importieren wir das Paket des Gin-Frameworks. Dann erstellen wir eine Gin-Instanz und registrieren eine GET-Route, die die Zeichenfolge „Hello, world!“ zurückgibt. Schließlich verwenden wir die Run-Methode, um unsere Webanwendung zu starten und den Port abzuhören.

Mit Curl unsere Anwendung anfordern:

$ curl http://localhost:8080/
Hello, world!
  1. Routing

Routing ist die Kernkomponente einer Webanwendung, die Anforderungen mit Handlerfunktionen verknüpft.

Das Folgende ist ein einfaches Beispiel:

package main

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

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

    r.GET("/ping", func(c *gin.Context) {
        c.String(200, "pong")
    })

    r.GET("/hello/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(200, "Hello, %s", name)
    })

    r.POST("/login", func(c *gin.Context) {
        username := c.PostForm("username")
        password := c.PostForm("password")
        c.JSON(200, gin.H{"username": username, "password": password})
    })

    r.Run()
}

Wir verwenden drei Routen:

  • /ping route, die eine Zeichenfolge „pong“ zurückgibt;
  • /hello/:name route, die einen Parameternamen empfängt und „Hello“ zurückgibt „, name“ dieser Zeichenfolge;
  • /login-Route, empfängt die POST-Anfrage und gibt den angeforderten Benutzernamen und das Passwort zurück.
  1. Middleware

Middleware ist eine wichtige Funktion des Gin-Frameworks, die Vorgänge ausführen kann, bevor und nachdem die Anfrage den Handler erreicht.

Hier ist ein Beispiel für die Verwendung der Gin-Middleware:

package main

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

func CustomMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        t := time.Now()
        fmt.Println("Starting middleware")
        c.Set("request_time", t)
        c.Next()
        fmt.Println("Ending middleware")
        latency := time.Since(t)
        fmt.Printf("Latency: %v
", latency)
    }
}

func main() {
    r := gin.Default()
    r.Use(CustomMiddleware())

    r.GET("/", func(c *gin.Context) {
        c.String(200, "Hello, world!")
    })

    r.Run()
}

Wir haben eine Middleware-Funktion namens CustomMiddleware erstellt, die die Startzeit der Anfrage aufzeichnet, die Anfrage dann an die Handlerfunktion übergibt und das Ende der Anfrage verarbeitet, wenn sie fertig ist.

Wir haben die Middleware bei unserer Gin-Instanz registriert und eine einfache Handler-Funktion in der Root-Route verwendet, um einen „Hello, world!“-String zurückzugeben.

Wenn wir unsere Anwendung ausführen, sehen wir den Middleware-Datensatz in der Ausgabe:

Starting middleware
Ending middleware
Latency: 277.1µs

3. Zusammenfassung

In diesem Artikel werden drei häufig verwendete Web-Frameworks in Golang kurz vorgestellt: Gin, Beego und Echo. Wir haben auch gezeigt, wie man mit dem Gin-Framework eine einfache Webanwendung erstellt und wie man Routing und Middleware verwendet.

Das Erlernen der Golang-Webentwicklung ist untrennbar mit dem Erlernen von Web-Frameworks verbunden. Allerdings zielen unterschiedliche Web-Frameworks auf unterschiedliche Anwendungsszenarien und Anforderungen ab, und Entwickler müssen basierend auf der tatsächlichen Situation das Framework auswählen, das am besten zu ihnen passt.

Das obige ist der detaillierte Inhalt vonErste Schritte mit dem Golang Learning Web Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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