A webfejlesztés egyike a sok olyan területnek, ahol használhatja a Go-t. Sok vállalat és projekt használja a Go-t webalkalmazásai hátterében, főként annak sebessége, könnyű kezelhetősége és csomagökoszisztémája miatt.

Az net/http csomag tartalmazza a legtöbb olyan funkciót, amelyre szüksége lehet webalkalmazások készítéséhez a Go-ban. Használhat más csomagokat is a funkciókban gazdag szabványos könyvtárból. Az kódolás csomag kezeli az alacsony szintű adatkonverziót és a html csomag lehetővé teszi a weboldalakkal való interakciót.

Ezen túlmenően a Go harmadik féltől származó csomagjainak ökoszisztémája extra funkciókat kínál a webfejlesztés elősegítésére.

1. A Gin-keretrendszer

Gin a Go egyik legnépszerűbb webfejlesztő csomagja. A Gin egy nagy teljesítményű mikro-keretrendszer webalkalmazások és mikroszolgáltatások létrehozásához a Go-ban.

A Gin gyors, és beépített renderelést, köztes szoftvert és JSON-ellenőrzési funkciókat kínál. Könnyű hibakezeléssel és bővíthetőséggel büszkélkedhet. Dokumentálhatja Gin-alkalmazásait az OpenAPI3 specifikációival és swaggerrel.

instagram viewer

A Gin egy Martini-szerű API-t tartalmaz, és a projekt negyvenszer gyorsabbnak állítja magát. A mikroszolgáltatások esetében újra felhasználhatja a Gin moduláris komponenseit kéréskezelési folyamatok fejlesztésére.

A Gin keretrendszert ezzel a paranccsal telepítheti:

megy szerezze be a github.com/gin-gonic/gin webhelyet

Így állíthat be egy egyszerű kérési végpontot a Gin keretrendszerrel.

import (
"github.com/gin-gonic/gin"
"napló"
"net/http"
)

funcfő-() {
router := gin. Alapértelmezett()

router. GET("/helló", func(kontextus *gin. Kontextus) {
kontextus. JSON(http. ÁllapotOK, gin. H{"siker": "Sikeresen elérte a végpontot"})
})

log. Fatalln (http. ListenAndServe(":8080", nulla))
}

Létrehozhat egy útválasztó példányt a Alapértelmezett módszere a gin csomag. Az KAP A GET kérések metódusa az elérési utat (végpontot) és a kezelő függvény deklarációját veszi fel. Ez a példafüggvény a 200 HTTP állapotkód az ügyfélnek, és sikeres JSON-választ kap a választörzsben.

2. A Fiber Framework

Rost memóriabiztos, ExpressJS-szerű a vakítóan gyorsra épített keretrendszer gyorshttp csomag. Kiváló teljesítményt kínál, és a kezdőket és a tapasztalt Javascript háttérfejlesztőket célozza meg.

A Fiber rendelkezik a legtöbb olyan funkcióval, amelyre a háttér-keretrendszerben szüksége lehet. Kezeli az útválasztást, a kérések csoportosítását, az érvényesítést, a sablonozást, a hook-okat, a hibakezelést és még sok mást. A Fiber bővíthető, és egyéni kódoló és dekódoló segítségével gyorsabbá teheti a Fibert.

Telepítse a Fiber keretrendszer legújabb verzióját (v2) ezzel a paranccsal:

megy töltse le a github.com/gofiber/fiber/v2 webhelyet

Így állíthat be egy egyszerű GET-kérés végpontot a Fiber-keretrendszerrel.

import "github.com/gofiber/fiber/v2"

funcfő-() {
app := fiber. Új()

kb. Get("/hello", func(ctx *szál. Ctx)hiba {
Visszatérés ctx. SendString("Hello")
})

log. Végzetes (kb. Hallgat(":8080"))
}

Az Új metódus egy Fiber alkalmazás új példányát adja vissza. Az Kap módszer a beállításra szolgál KAP kéréseket. Ebben az esetben a /hello végpont visszaadja a karakterláncot Szia.

Beállítja az alkalmazást, hogy figyeljen a port localhost porton 8080 a... val Hallgat az alkalmazás módszere.

3. Az Iris keretrendszer

Az Iris egy többplatformos, hatékony, teljes értékű, jól megtervezett webes keretrendszer. Használhatja nagy teljesítményű, hordozható API-k és webalkalmazások létrehozására a Go-ban. A Fiberhez hasonlóan az Iris is ExpressJS is inspirálja az Iris tervezési mintáit.

Az Iris segítségével gyorsan készíthet szerver nélküli alkalmazásokat, és telepítheti őket az AWS-re, a Netlify-ra és sok más szolgáltatásra. Az Iris csomag tartalmaz egy CLI-alkalmazást, amelyet az Iris-sablonok élő újratöltésére és az alkalmazás figyelésére használhat.

Az Iris csomag olyan funkciókkal rendelkezik, amelyek rendkívül egyszerűvé teszik a fejlesztést. Az Iris rendelkezik egy Sinatra-szerű API-val, amely gondoskodik a naplózásról, az útválasztásról, a munkamenetekről és a websocketekről. Támogatja a GRPC-t, a fájlkiszolgálást, a hitelesítést, az engedélyezést és a tesztelési funkciókat is.

Futtassa ezt a parancsot a munkaterület termináljában, hogy telepítse az Iris keretrendszert a Go moduljaira.

megy töltse le a github.com/kataras/iris/v12@lastest

Így állíthatja be a KAP kérje az Iris keretrendszerrel, hogy a localhost porton fut 8080.

import "github.com/kataras/iris/v12"

funcfő-() {
app := írisz. Új() // új Iris példány

kb. Handle("GET", "/hello", func(ctx írisz. Kontextus) {
_, err := ctx. JSON (írisz. Térkép{"message": "hello"})

ha hiba! = nulla {
Visszatérés
}
})

hiba := kb. Fuss (írisz. Adr(":8080"), írisz. ServerError nélkül (iris. ErrServerClosed))

ha hiba! = nulla {
Visszatérés
}
}

Az kb változó egy új Iris alkalmazás példánya. Az KAP A kezelő egy JSON-üzenetet ad vissza a kéréshez /hello útvonal.

4. A Beego-keret

Beego egy könnyen használható, intelligens és nagy teljesítményű Go keretrendszer webes alkalmazások készítéséhez. A Beego egyszerűvé teszi a moduláris alkalmazások építését. Beépített ORM-mel (objektum-relációs leképezővel) és útválasztóval, valamint sablon funkcióval érkezik.

A Beego a Go-specifikus képességeket interfészekkel és struktúra beágyazással integrálja. Nagyszerű API-struktúrával rendelkezik, a munkamenet- és telepítési támogatással és internalizálással a sebességre optimalizálva.

A Beego széles körben elterjedt, és sok vállalat, az Operától a Huawei-ig, a Tencentig és a Weicóig használja a Beego-t a gyártás során.

Ezzel a paranccsal telepítheti a Beego Framework-et a projektbe.

megy get -u github.com/beego/beego/v2

Így állíthat be egy egyszerű KAP kérjen API-végpontot a Beego keretrendszerrel.

import "github.com/beego/beego/v2/server/web"

típus ControllerPéldány struct {
web. Vezérlő // belépési pont a beego alkalmazáshoz
}

func(vezérlő *ControllerInstance)Kap() {
vezérlő. Ctx. WriteString ("hello világ")
}

funcfő-() {
web. Router("/hello", &ControllerInstance{}) // szerelés beego-val
web. Fuss() // a beego alkalmazás futtatása
}

Az ControllerPéldány A struct a Beego alkalmazás belépési pontja. Az Kap kezelő függvény tartalmazza a logikát a KAP kérni a /hello végpont. Válaszként a „hello world” karakterláncot adja vissza.

5. A Revel Framework

Mulatság ragyog a rugalmasságban, amelyet webalkalmazások készítéséhez biztosít. Használhatja a Revel típusbiztos útválasztását, vezérlőket építhet és használhat Ugrás a sablonokhoz Revel-lel.

A Revel funkcionalitást biztosít az útválasztáshoz, az egyszerű JSON-kódoláshoz és -dekódoláshoz, valamint a munkamenet-kezeléshez. Tartalmaz olyan funkciókat is, amelyek kezelik a gyorsítótárazást, a hibakeresést és a webalkalmazások tesztelését. A Revel rendelkezik egy CLI-csomaggal az alkalmazások CLI-inek létrehozásához. Statikus fájlokat szolgálhat ki a Revel segítségével, és csevegőalkalmazásokat készíthet a Websocket funkciójával.

Telepítse a Revel keretrendszert a projektkönyvtárába ezzel a paranccsal:

megy töltse le a github.com/revel/revel webhelyet

A Revel alkalmazás beállítása egyszerű. Íme egy egyszerű kezelő funkció a KAP kérjen végpontot a Revel keretrendszerrel.

import (
"github.com/revel/revel"
)

típus Modell struct { // egyszerű modellstruktúra
Üzenet húr`json:"üzenet"`
Leírás húr`json:"leírás"`
}

típus App struct {
*mulatság. Vezérlő // belépési pont a kérésekhez
}

func(alkalmazás alkalmazás)Szia()mulatság.Eredmény {
modell := Modell{
Üzenet: "siker",
Leírás: "Hello!, World",
}

kb. Válasz. ContentType = "alkalmazás/json"
Visszatérés kb. RenderJSON(modell)
}

Az App A struct a Revel alkalmazás belépési pontja. A kezelők implementálják az alkalmazásstruktúrát. A választartalom típusa JSON, és a Szia A kezelő függvény egy kódolt JSON-struktúrát ad vissza.

Vigyázzon az útválasztók és a keretrendszerek közötti különbségre

A Go ökoszisztémában számos webes csomag található, amelyek többsége útválasztó vagy keretrendszer. Az útválasztók a HTTP protokollon keresztüli kérések fogadására szolgálnak.

Az útválasztókkal való együttműködéshez további csomagokra lesz szüksége. Az oktatóanyaghoz hasonlóan a legtöbb keretrendszer más funkciók mellett beépített útválasztókat is tartalmaz.