Spletni razvoj je eno od mnogih področij, na katerih lahko uporabljate Go. Številna podjetja in projekti uporabljajo Go v ozadju svojih spletnih aplikacij, predvsem zaradi njegove hitrosti, enostavne uporabe in paketnega ekosistema.
The net/http ima večino funkcij, ki jih boste potrebovali za izdelavo spletnih aplikacij v Go. Uporabite lahko druge pakete iz bogate standardne knjižnice. The kodiranje paket obravnava pretvorbo podatkov na nizki ravni in html paket vam omogoča interakcijo s spletnimi stranmi.
Poleg tega Gojev ekosistem paketov tretjih oseb ponuja dodatne funkcije za pomoč pri spletnem razvoju.
1. Gin Framework
gin je eden najbolj priljubljenih paketov za razvoj spletnih strani Go. Gin je zelo zmogljivo mikroogrodje za izdelavo spletnih aplikacij in mikrostoritev v Go.
Gin je hiter in nudi vgrajeno funkcijo upodabljanja, vmesne programske opreme in preverjanja JSON. Ponaša se z enostavnim upravljanjem napak in razširljivostjo. Svoje aplikacije Gin lahko dokumentirate s specifikacijo OpenAPI3 in bahanjem.
Gin ima API, podoben Martiniju, in projekt trdi, da je štiridesetkrat hitrejši. Za mikrostoritve lahko ponovno uporabite Ginove modularne komponente za razvoj cevovodov za obdelavo zahtev.
Ogrodje Gin lahko namestite s tem ukazom:
pojdi dobite github.com/gin-gonic/gin
Tukaj je opisano, kako nastavite preprosto končno točko zahteve z ogrodjem Gin.
uvoz (
"github.com/gin-gonic/gin"
"dnevnik"
"net/http"
)funkglavni() {
usmerjevalnik := gin. Privzeto()usmerjevalnik. GET("/zdravo", funk(kontekst *gin. kontekst) {
kontekstu. JSON(http. Stanje OK, gin. H{"uspeh": "Uspešno dosežen končno točko"})
})
dnevnik. Fatalln (http. ListenAndServe(":8080", nič))
}
Primerek usmerjevalnika lahko ustvarite z Privzeto metoda gin paket. The DOBITI metoda za zahteve GET sprejme pot (končno točko) in deklaracijo funkcije obravnave. Ta primer funkcije vrne a 200 Statusna koda HTTP odjemalcu in uspešen odgovor JSON v telesu odgovora.
2. Fiber Framework
Vlakno je varen za spomin, Podoben ExpressJS ogrodje, zgrajeno na izjemno hitrem fasthttp paket. Ponuja odlično zmogljivost in je namenjen začetnikom in izkušenim razvijalcem zaledja Javascript.
Fiber ima večino funkcionalnosti, ki jih boste potrebovali v zalednem ogrodju. Upravlja z usmerjanjem, združevanjem zahtev, preverjanjem veljavnosti, oblikovanjem predlog, kavlji, obravnavanjem napak in še veliko več. Fiber je razširljiv, Fiber pa lahko naredite hitrejše z uporabo kodirnika in dekodirnika po meri.
Namestite najnovejšo različico (v2) ogrodja Fiber s tem ukazom:
pojdi dobite github.com/gofiber/fiber/v2
Tukaj je opisano, kako lahko nastavite preprosto končno točko zahteve GET z ogrodjem Fiber.
uvoz "github.com/gofiber/fiber/v2"
funkglavni() {
app := vlakna. novo()aplikacija Get("/zdravo", funk(ctx *vlakna. Ctx)napaka {
vrnitev ctx. SendString("Pozdravljeni")
})
dnevnik. Usodno (pribl. Poslušaj (":8080"))
}
The Novo metoda vrne nov primerek aplikacije Fiber. The Dobiti metoda je za nastavitev DOBITI zahteve. V tem primeru je /hello končna točka vrne niz zdravo.
Aplikacijo nastavite za poslušanje na vratih lokalnega gostitelja 8080 z poslušaj metoda aplikacije.
3. Ogrodje Iris
Iris je večplatformsko, učinkovito, polnopravno, dobro zasnovano spletno ogrodje. Uporabite ga lahko za izdelavo visoko zmogljivih, prenosljivih API-jev in spletnih aplikacij v Go. Tako kot Fiber tudi Iris ExpressJS navdihuje nekatere oblikovalske vzorce v Iris.
Z Iris lahko hitro zgradite brezstrežniške aplikacije in jih namestite v AWS, Netlify in številne druge storitve. Paket Iris ima aplikacijo CLI, ki jo lahko uporabite za ponovno nalaganje predlog Iris v živo in spremljanje vaše aplikacije.
Paket Iris ima funkcije, ki zelo olajšajo razvoj. Iris ima API, podoben Sinatri, ki skrbi za beleženje, usmerjanje, seje in spletne vtičnice. Podpira tudi GRPC, streženje datotek, avtentikacijo, avtorizacijo in funkcionalnost testiranja.
Zaženite ta ukaz v terminalu svojega delovnega prostora, da namestite ogrodje Iris v svoje module Go.
pojdi pridobite github.com/kataras/iris/v12@lastest
Tukaj je opisano, kako lahko nastavite a DOBITI zahteva z ogrodjem Iris za izvajanje na vratih lokalnega gostitelja 8080.
uvoz "github.com/kataras/iris/v12"
funkglavni() {
app := iris. novo() // nov primerek Irisaplikacija Handle("GET", "/zdravo", funk(ctx iris. kontekst) {
_, napaka := ctx. JSON(iris. Zemljevid{"message": "hello"})če napaka!= nič {
vrnitev
}
})napaka := app. Teci (iris. Addr(":8080«), šarenica. WithoutServerError (iris. ErrServerClosed))
če napaka!= nič {
vrnitev
}
}
The aplikacija spremenljivka je primerek nove aplikacije Iris. The DOBITI vrne sporočilo JSON za zahtevo na /hello pot.
4. Beego Framework
Beego je preprosto za uporabo, inteligentno in zelo zmogljivo ogrodje Go za izdelavo spletnih aplikacij. Beego omogoča preprosto izdelavo modularnih aplikacij. Na voljo je z vgrajenim ORM (object-relational mapper) in usmerjevalnikom ter funkcijo predlog.
Beego integrira zmogljivosti, specifične za Go, z vmesniki in vdelavo struktur. Ima odlično strukturo API-ja, optimizirano za hitrost s podporo za sejo in uvajanje ter internalizacijo.
Beego je zelo razširjen in mnoga podjetja, od Opere do Huaweija, Tencenta in Weica, uporabljajo Beego v proizvodnji.
S tem ukazom lahko namestite Beego Framework v svoj projekt.
pojdi get -u github.com/beego/beego/v2
Tukaj je opisano, kako lahko nastavite preprosto DOBITI zahtevati končno točko API z ogrodjem Beego.
uvoz "github.com/beego/beego/v2/server/web"
vrsta ControllerInstance struct {
splet. Krmilnik // vstopna točka za aplikacijo beego
}funk(krmilnik *ControllerInstance)Dobiti() {
krmilnik. Ctx. WriteString("zdravo svet")
}
funkglavni() {
splet. Usmerjevalnik("/hello", &ControllerInstance{}) // montaža z beego
splet. Zaženi() // izvajanje aplikacije beego
}
The ControllerInstance struct je vstopna točka aplikacije Beego. The Dobiti funkcija obdelovalca vsebuje logiko za a DOBITI zahtevo za /hello končna točka. Kot odgovor vrne niz »zdravo, svet«.
5. Ogrodje Revel
Revel blesti zaradi prilagodljivosti, ki jo zagotavlja za izdelavo spletnih aplikacij. Uporabite lahko Revelovo varno usmerjanje, sestavite krmilnike in uporabite Go šablone z Revelom.
Revel zagotavlja funkcionalnost za usmerjanje, enostavno kodiranje in dekodiranje JSON ter upravljanje sej. Vključuje tudi funkcije za upravljanje predpomnjenja, odpravljanje napak in testiranje spletnih aplikacij. Revel ima paket CLI za gradnjo CLI-jev za vaše aplikacije. Z Revel lahko postrežete statične datoteke in ustvarite aplikacije za klepet z njegovo funkcijo Websocket.
Namestite okvir Revel v imenik vašega projekta s tem ukazom:
pojdi dobite github.com/revel/revel
Aplikacijo Revel je enostavno nastaviti. Tukaj je preprosta funkcija obdelovalca za a DOBITI zahtevajte končno točko z ogrodjem Revel.
uvoz (
"github.com/revel/revel"
)vrsta Model struct { // preprosta struktura modela
Sporočilo vrvica`json:"sporočilo"`
Opis vrvica`json:"opis"`
}vrsta aplikacija struct {
*zabava. Krmilnik // vstopna točka za zahteve
}funk(aplikacija Aplikacija)zdravo()uživanje.Rezultat {
model := Model{
Sporočilo: "uspeh",
Opis: "Hello!, World",
}
aplikacija Odziv. ContentType = "aplikacija/json"
vrnitev aplikacija RenderJSON(model)
}
The aplikacija struct je vstopna točka aplikacije Revel. Vaši skrbniki bodo implementirali strukturo aplikacije. Vrsta vsebine odgovora je JSON in zdravo funkcija obravnave vrne kodirano strukturo JSON.
Pazite na razliko med usmerjevalniki in ogrodji
V ekosistemu Go boste našli veliko spletnih paketov, ki so večinoma usmerjevalniki ali ogrodja. Usmerjevalniki so namenjeni sprejemanju zahtev prek protokola HTTP.
Za delo z usmerjevalniki boste potrebovali dodatne pakete. Tako kot tisti v tej vadnici tudi večina ogrodij vključuje vgrajene usmerjevalnike poleg drugih funkcij.