Interneto kūrimas yra viena iš daugelio sričių, kuriose galite naudoti „Go“. Daugelis įmonių ir projektų naudoja „Go“ savo žiniatinklio programų fone, daugiausia dėl greičio, naudojimo paprastumo ir paketų ekosistemos.

The net/http paketas turi daugumą funkcijų, kurių prireiks kuriant žiniatinklio programas Go. Galite naudoti kitus paketus iš turtingos standartinės bibliotekos. The kodavimas paketas tvarko žemo lygio duomenų konvertavimą ir html paketas leidžia bendrauti su tinklalapiais.

Be to, „Go“ trečiųjų šalių paketų ekosistemoje yra papildomų funkcijų, padedančių kurti žiniatinklį.

1. Džino sistema

Džinas yra vienas populiariausių „Go“ žiniatinklio kūrimo paketų. Gin yra labai našus mikrosistemas, skirtas kurti žiniatinklio programas ir mikropaslaugas Go.

Gin yra greitas ir suteikia integruotą atvaizdavimą, tarpinę programinę įrangą ir JSON patvirtinimo funkcijas. Jis gali pasigirti lengvu klaidų valdymu ir išplėtimu. Galite dokumentuoti savo „Gin“ programas naudodami „OpenAPI3“ specifikacijas ir patobulinimus.

instagram viewer

Džinas turi Martini tipo API, o projektas teigia esantis keturiasdešimt kartų greitesnis. Mikropaslaugoms galite pakartotinai naudoti Gin modulinius komponentus, kad sukurtumėte užklausų apdorojimo vamzdynus.

„Gin“ sistemą galite įdiegti naudodami šią komandą:

eik Gaukite github.com/gin-gonic/gin

Štai kaip nustatyti paprastą užklausos galutinį tašką naudojant Gin sistemą.

importuoti (
„github.com/gin-gonic/gin“
"rąstas"
"net/http"
)

funcpagrindinis() {
maršrutizatorius := gin. Numatytas()

maršrutizatorius. GET("/labas", func(kontekstas *gin. kontekstas) {
kontekste. JSON (http. BūsenaGerai, džinas. H{"sėkmė": "Sėkmingai pasiektas galutinis taškas"})
})

žurnalas. Fatalln (http. ListenAndServe (":8080", nulis))
}

Galite sukurti maršrutizatoriaus egzempliorių naudodami Numatytas metodas džinas paketą. The GAUTI GET užklausų metodas apima kelią (galinį tašką) ir tvarkyklės funkcijos deklaraciją. Ši funkcija pavyzdyje grąžina a 200 HTTP būsenos kodas klientui ir sėkmingą JSON atsakymą atsakymo korpuse.

2. Fiber Framework

Pluoštas yra saugus atminčiai, „ExpressJS“ tipo karkasas pastatytas ant nepaprastai greito greitashttp paketą. Jis siūlo puikų našumą ir yra skirtas pradedantiesiems ir patyrusiems „Javascript“ fono kūrėjams.

„Fiber“ turi daugumą funkcijų, kurių jums prireiks užpakalinėje sistemoje. Jis tvarko maršrutą, užklausų grupavimą, patvirtinimą, šablonų kūrimą, kabliukus, klaidų tvarkymą ir daug daugiau. „Fiber“ yra išplečiamas, o naudodami tinkintą koduotuvą ir dekoderį galite pagreitinti „Fiber“.

Įdiekite naujausią „Fiber“ sistemos versiją (v2) naudodami šią komandą:

eik Gaukite github.com/gofiber/fiber/v2

Štai kaip galite nustatyti paprastą GET užklausos galinį tašką naudodami „Fiber“ sistemą.

importuoti „github.com/gofiber/fiber/v2“

funcpagrindinis() {
programa := pluoštas. Naujas ()

programėlė. Gauti ("/labas", func(ctx * pluoštas. Ctx)klaida {
grąžinti ctx. SendString ("Sveiki")
})

žurnalas. Mirtinas (app. Klausyk (":8080"))
}

The Nauja metodas grąžina naują „Fiber“ programos egzempliorių. The Gauk metodas skirtas nustatyti GAUTI prašymus. Šiuo atveju, /hello endpoint grąžina eilutę Sveiki.

Nustatote programą, kad ji klausytų per prievado localhost prievadą 8080 su Klausyk programos metodas.

3. Iris Framework

Iris yra kelių platformų, efektyvi, visavertė, gerai suprojektuota žiniatinklio sistema. Galite naudoti jį kurdami didelio našumo nešiojamąsias API ir žiniatinklio programas naudodami „Go“. Kaip ir Fiber, Iris is ExpressJS įkvepia kai kuriuos Iris dizaino modelius.

Naudodami „Iris“ galite greitai sukurti programas be serverių ir įdiegti jas AWS, „Netlify“ ir daugelyje kitų paslaugų. „Iris“ pakete yra CLI programa, kurią galite naudoti tiesioginiam „Iris“ šablonų įkėlimui ir programos stebėjimui.

Iris paketas turi funkcijų, kurios labai palengvina kūrimą. „Iris“ turi į „Sinatra“ panašią API, kuri užtikrina registravimą, maršruto parinkimą, seansus ir žiniatinklio lizdus. Jis taip pat palaiko GRPC, failų aptarnavimo, autentifikavimo, autorizacijos ir testavimo funkcijas.

Vykdykite šią komandą savo darbo srities terminale, kad įdiegtumėte „Iris“ sistemą „Go“ moduliuose.

eik gauti github.com/kataras/iris/v12@lastest

Štai kaip galite nustatyti a GAUTI užklausa su „Iris“ sistema veikti „localhost“ prievade 8080.

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

funcpagrindinis() {
programėlė := rainelė. Naujas () // naujas Iris pavyzdys

programėlė. Handle("GET", "/labas", func(ctx rainelė. kontekstas) {
_, klaida := ctx. JSON (rainelės. Žemėlapis{"message": "labas"})

jeigu klysta! = nulis {
grąžinti
}
})

klaida := programa. Bėgti (rainelė. Adr(":8080“), rainelė. Be serverio klaidos (iris. ErrServerClosed))

jeigu klysta! = nulis {
grąžinti
}
}

The programėlė kintamasis yra naujos Iris programos pavyzdys. The GAUTI tvarkytojas grąžina JSON pranešimą, kad pateiktų užklausą /hello maršrutą.

4. Beego karkasas

Beego yra paprasta naudoti, išmani ir labai naši „Go“ sistema, skirta žiniatinklio programoms kurti. Beego leidžia lengvai kurti modulines programas. Jame yra integruotas ORM (objektų santykių žemėlapis) ir maršrutizatorius bei šablonų funkcionalumas.

„Beego“ integruoja „Go“ specifines galimybes su sąsajomis ir struktūrų įdėjimu. Ji turi puikią API struktūrą, optimizuotą greičiui su seanso ir diegimo palaikymu ir internalizavimu.

„Beego“ yra plačiai paplitęs, o daugelis kompanijų, nuo „Opera“ iki „Huawei“, „Tencent“ ir „Weico“, naudoja „Beego“ gamyboje.

Šią komandą galite naudoti norėdami įdiegti „Beego Framework“ savo projekte.

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

Štai kaip galite nustatyti paprastą GAUTI užklausa API galinio taško su „Beego“ sistema.

importuoti „github.com/beego/beego/v2/server/web“

tipo Valdiklio egzempliorius struktūra {
žiniatinklio. Valdiklis // „beego“ programos įėjimo taškas
}

func(valdiklis *ControllerInstance)Gauk() {
valdiklis. Ctx. WriteString ("labas pasaulis")
}

funcpagrindinis() {
žiniatinklio. Maršrutizatorius ("/hello", &ControllerInstance{}) // montavimas su beego
žiniatinklio. Vykdyti () // veikia beego programa
}

The Valdiklio egzempliorius struct yra „Beego“ programos įėjimo taškas. The Gauk tvarkyklės funkcijoje yra a logika GAUTI prašymą į /hello galutinis taškas. Jis grąžina eilutę „labas pasaulis“ kaip atsaką.

5. „Revel Framework“.

Revel pasižymi lankstumu, kurį suteikia kuriant žiniatinklio programas. Galite naudoti „Revel“ tipo saugų maršruto parinkimą, kurti valdiklius ir naudoti Eikite į šablonus su Revel.

„Revel“ teikia maršruto parinkimo, lengvo JSON kodavimo ir dekodavimo bei seansų tvarkymo funkcijas. Ji taip pat apima funkcijas, skirtas tvarkyti talpyklą, derinti ir tikrinti žiniatinklio programas. „Revel“ turi CLI paketą, skirtą jūsų programų CLI kurti. Galite aptarnauti statinius failus naudodami „Revel“ ir kurti pokalbių programas naudodami „Websocket“ funkciją.

Įdiekite „Revel“ sistemą savo projekto kataloge naudodami šią komandą:

eik gaukite github.com/revel/revel

Lengva nustatyti „Revel“ programą. Štai paprasta tvarkyklės funkcija, skirta a GAUTI užklausos galutinis taškas naudojant „Revel“ sistemą.

importuoti (
„github.com/revel/revel“
)

tipo Modelis struktūra { // paprasta modelio struktūra
Pranešimas styga`json:"pranešimas"`
apibūdinimas styga`json:"description"'
}

tipo Programėlė struktūra {
* pasilinksminti. Valdiklis // užklausų įėjimo taškas
}

func(programos programa)Sveiki()pasilinksminti.Rezultatas {
modelis := modelis{
Žinutė: "sėkmės",
Aprašymas: "Sveikas, pasauli",
}

programėlė. Atsakymas. ContentType = "application/json"
grąžinti programėlė. RenderJSON (modelis)
}

The Programėlė struct yra „Revel“ programos įėjimo taškas. Jūsų tvarkytojai įdiegs programos struktūrą. Atsakymo turinio tipas yra JSON ir Sveiki tvarkyklės funkcija grąžina užkoduotą JSON struktūrą.

Saugokitės maršruto parinktuvų ir karkasų skirtumo

„Go“ ekosistemoje rasite daug žiniatinklio paketų, kurių dauguma yra maršrutizatoriai arba sistemos. Maršrutizatoriai skirti užklausoms gauti per HTTP protokolą.

Norėdami dirbti su maršrutizatoriais, jums reikės papildomų paketų. Kaip ir šiame vadove, daugumoje sistemų yra integruoti maršrutizatoriai kartu su kitomis funkcijomis.