Die Webentwicklung ist einer von vielen Bereichen, in denen Sie Go verwenden können. Viele Unternehmen und Projekte verwenden Go im Backend ihrer Webanwendungen, hauptsächlich wegen seiner Geschwindigkeit, Benutzerfreundlichkeit und seines Paket-Ökosystems.
Das net/http Paket enthält die meisten Funktionen, die Sie zum Erstellen von Webanwendungen in Go benötigen. Sie können andere Pakete aus der funktionsreichen Standardbibliothek verwenden. Das Codierung Paket behandelt die Low-Level-Datenkonvertierung und die html -Paket können Sie mit Webseiten interagieren.
Darüber hinaus bietet Gos Ökosystem aus Paketen von Drittanbietern zusätzliche Funktionen zur Unterstützung der Webentwicklung.
1. Das Gin-Framework
Gin ist eines der beliebtesten Webentwicklungspakete von Go. Gin ist ein hochleistungsfähiges Mikro-Framework zum Erstellen von Webanwendungen und Mikrodiensten in Go.
Gin ist schnell und bietet integrierte Rendering-, Middleware- und JSON-Validierungsfunktionen. Es zeichnet sich durch einfaches Fehlermanagement und Erweiterbarkeit aus. Sie können Ihre Gin-Anwendungen mit der OpenAPI3-Spezifikation und Prahlerei dokumentieren.
Gin verfügt über eine Martini-ähnliche API, und das Projekt behauptet, vierzigmal schneller zu sein. Für Microservices können Sie die modularen Komponenten von Gin wiederverwenden, um Pipelines zur Anfragebearbeitung zu entwickeln.
Sie können das Gin-Framework mit diesem Befehl installieren:
gehen Holen Sie sich github.com/gin-gonic/gin
So richten Sie einen einfachen Anforderungsendpunkt mit dem Gin-Framework ein.
importieren (
"github.com/gin-gonic/gin"
"Protokoll"
"net/http"
)Funkthauptsächlich() {
Router := gin. Standard()Router. GET("/Hallo", Funkt(Kontext *gin. Kontext) {
Kontext. JSON (http. StatusOK, Gin. H{"Erfolg": "Endpunkt erfolgreich erreicht"})
})
Protokoll. Fatalln (http. ListenAndServe(":8080", Null))
}
Sie können eine Router-Instanz mit dem erstellen Standard Methode der Gin Paket. Das ERHALTEN -Methode für GET-Anforderungen übernimmt den Pfad (Endpunkt) und eine Handler-Funktionsdeklaration. Diese Beispielfunktion gibt a zurück 200 HTTP-Statuscode an den Client und eine erfolgreiche JSON-Antwort im Antworttext.
2. Das Fasergerüst
Faser ist ein speichersicheres, ExpressJS-ähnlich Framework, das auf dem blitzschnellen aufgebaut ist schnellhttp Paket. Es bietet eine hervorragende Leistung und richtet sich an Anfänger und erfahrene Javascript-Backend-Entwickler.
Fiber bietet die meisten Funktionen, die Sie in einem Backend-Framework benötigen. Es übernimmt Routing, Anfragegruppierung, Validierung, Templating, Hooks, Fehlerbehandlung und vieles mehr. Glasfaser ist erweiterbar, und Sie können Glasfaser mit einem benutzerdefinierten Encoder und Decoder schneller machen.
Installieren Sie die neueste Version (v2) des Fiber-Frameworks mit diesem Befehl:
gehen Holen Sie sich github.com/gofiber/fiber/v2
So können Sie mit dem Fiber-Framework einen einfachen GET-Anforderungsendpunkt einrichten.
importieren "github.com/gofiber/fiber/v2"
Funkthauptsächlich() {
app := Faser. Neu()App. Hole("/hallo", Funkt(ctx *faser. Ctx)Error {
Rückkehr ctx. SendString("Hallo")
})
Protokoll. Tödlich (ca. Hör mal zu(":8080"))
}
Das Neu -Methode gibt eine neue Instanz einer Fiber-App zurück. Das Erhalten Methode ist für die Einrichtung ERHALTEN Anfragen. In diesem Fall ist die /hello Endpunkt gibt die Zeichenfolge zurück Hallo.
Sie richten die App so ein, dass sie den Port „localhost“ abhört 8080 mit dem Hör mal zu Methode der App.
3. Das Iris-Framework
Iris ist ein plattformübergreifendes, effizientes, vollwertiges und gut gestaltetes Web-Framework. Sie können damit leistungsstarke, portable APIs und Web-Apps in Go erstellen. Wie Fiber inspiriert Iris ExpressJS einige der Designmuster in Iris.
Mit Iris können Sie schnell serverlose Apps erstellen und sie auf AWS, Netlify und vielen anderen Diensten bereitstellen. Das Iris-Paket enthält eine CLI-App, mit der Sie Iris-Vorlagen live neu laden und Ihre App überwachen können.
Das Iris-Paket verfügt über Funktionen, die die Entwicklung extrem einfach machen. Iris verfügt über eine Sinatra-ähnliche API, die für Protokollierung, Routing, Sitzungen und Websockets sorgt. Es unterstützt auch GRPC, File Serving, Authentifizierung, Autorisierung und Testfunktionen.
Führen Sie diesen Befehl im Terminal Ihres Arbeitsbereichs aus, um das Iris-Framework in Ihren Go-Modulen zu installieren.
gehen Holen Sie sich github.com/kataras/iris/v12@lastest
So richten Sie eine ein ERHALTEN Anfrage mit dem Iris-Framework, um auf dem Localhost-Port ausgeführt zu werden 8080.
importieren "github.com/kataras/iris/v12"
Funkthauptsächlich() {
App := Iris. Neu() // neue Iris-InstanzApp. Handle("GET", "/hallo", Funkt(ctx iris. Kontext) {
_, äh := ctx. JSON (iris. Karte{"Nachricht": "Hallo"})wenn äh != Null {
Rückkehr
}
})ähm := app. Laufen (iris. Adresse(":8080“), Iris. Ohne ServerError (iris. ErrServerClosed))
wenn äh != Null {
Rückkehr
}
}
Das App Variable ist die Instanz einer neuen Iris-App. Das ERHALTEN -Handler gibt eine JSON-Nachricht zur Anforderung an die zurück /hello Route.
4. Das Beego-Framework
Beego ist ein benutzerfreundliches, intelligentes und hochleistungsfähiges Go-Framework zum Erstellen von Web-Apps. Beego vereinfacht das Erstellen modularer Anwendungen. Es verfügt über einen integrierten ORM (Object-Relational Mapper) und einen Router sowie eine Templating-Funktionalität.
Beego integriert Go-spezifische Funktionen mit Schnittstellen und Struktureinbettung. Es verfügt über eine großartige API-Struktur, die auf Geschwindigkeit mit Sitzungs- und Bereitstellungsunterstützung und Internalisierung optimiert ist.
Beego ist weit verbreitet und viele Unternehmen, von Opera bis Huawei, Tencent und Weico, verwenden Beego in der Produktion.
Mit diesem Befehl können Sie das Beego Framework in Ihrem Projekt installieren.
gehen Holen Sie sich -u github.com/beego/beego/v2
So können Sie ein einfaches einrichten ERHALTEN API-Endpunkt mit dem Beego-Framework anfordern.
importieren "github.com/beego/beego/v2/server/web"
Typ ControllerInstance Struktur {
Netz. Regler // Einstiegspunkt für die beego App
}Funkt(Controller *ControllerInstance)Erhalten() {
Regler. Ctx. WriteString("Hallo Welt")
}
Funkthauptsächlich() {
Netz. Router("/hello", &ControllerInstance{}) // Montage mit beego
Netz. Laufen() // laufende beego-App
}
Das ControllerInstance struct ist der Einstiegspunkt der Beego-App. Das Erhalten Handler-Funktion enthält die Logik für a ERHALTEN Anfrage an die /hello Endpunkt. Als Antwort gibt es den String „Hello World“ zurück.
5. Das Revel-Framework
Schwelgen glänzt durch die Flexibilität, die es für die Erstellung von Webanwendungen bietet. Sie können das typsichere Routing von Revel verwenden, Controller erstellen und verwenden Go-Vorlagen mit Revell.
Revel bietet Funktionen für Routing, einfache JSON-Codierung und -Decodierung sowie Sitzungsverwaltung. Es enthält auch Funktionen zum Caching, Debuggen und Testen von Web-Apps. Revel hat ein CLI-Paket zum Erstellen von CLIs für Ihre Apps. Sie können mit Revel statische Dateien bereitstellen und mit der Websocket-Funktionalität Chat-Apps erstellen.
Installieren Sie das Revel-Framework mit diesem Befehl in Ihrem Projektverzeichnis:
gehen Holen Sie sich github.com/revel/revel
Es ist einfach, eine Revel-App einzurichten. Hier ist eine einfache Handler-Funktion für a ERHALTEN Anfrageendpunkt mit dem Revel-Framework.
importieren (
"github.com/revel/revel"
)Typ Modell Struktur { // einfache Modellstruktur
Nachricht Schnur`json:"Nachricht"`
Beschreibung Schnur`json:"Beschreibung"`
}Typ App Struktur {
*schwelgen. Regler // Einstiegspunkt für die Anfragen
}Funkt(App-App)Hallo()schwelgen.Ergebnis {
Modell := Modell{
Nachricht: "Erfolg",
Beschreibung: "Hallo!, Welt",
}
App. Antwort. ContentType = "application/json"
Rückkehr App. RenderJSON (Modell)
}
Das App struct ist der Einstiegspunkt der Revel-App. Ihre Handler implementieren die App-Struktur. Der Inhaltstyp der Antwort ist JSON und die Hallo Die Handler-Funktion gibt eine codierte JSON-Struktur zurück.
Beachten Sie den Unterschied zwischen Routern und Frameworks
Im Go-Ökosystem finden Sie viele Webpakete, von denen die meisten Router oder Frameworks sind. Router dienen zum Empfangen von Anfragen über das HTTP-Protokoll.
Sie benötigen zusätzliche Pakete, um mit Routern zu arbeiten. Wie die in diesem Tutorial enthalten die meisten Frameworks neben anderen Funktionen integrierte Router.