Web razvoj jedno je od mnogih polja u kojima možete koristiti Go. Mnoge tvrtke i projekti koriste Go na pozadini svojih web aplikacija, uglavnom zbog njegove brzine, jednostavnosti korištenja i ekosustava paketa.
The net/http paket ima većinu funkcionalnosti koje ćete trebati za izradu web aplikacija u Go. Možete koristiti druge pakete iz značajkama bogate standardne biblioteke. The kodiranje paket obrađuje pretvorbu podataka niske razine i html paket vam omogućuje interakciju s web stranicama.
Osim toga, Goov ekosustav paketa trećih strana pruža dodatne značajke za pomoć razvoju weba.
1. Gin okvir
Džin je jedan od najpopularnijih paketa za web razvoj Goa. Gin je vrlo učinkovit mikrookvir za izradu web aplikacija i mikroservisa u Gou.
Gin je brz i pruža ugrađenu funkciju renderiranja, međuprograma i JSON provjere valjanosti. Može se pohvaliti jednostavnim upravljanjem pogreškama i proširivošću. Možete dokumentirati svoje Gin aplikacije s OpenAPI3 specifikacijom i razmetanjem.
Gin ima API sličan Martiniju, a projekt tvrdi da je četrdeset puta brži. Za mikroservise možete ponovno koristiti Ginove modularne komponente za razvoj cjevovoda za obradu zahtjeva.
Gin okvir možete instalirati ovom naredbom:
ići dobiti github.com/gin-gonic/gin
Evo kako postaviti jednostavnu krajnju točku zahtjeva s okvirom Gin.
uvoz (
"github.com/gin-gonic/gin"
"log"
"net/http"
)funkglavni() {
usmjerivač := gin. Zadano()ruter. GET("/zdravo", funk(kontekst *gin. Kontekst) {
kontekst. JSON(http. Status OK, gin. H{"success": "Uspješno postignuta krajnja točka"})
})
log. Fatalln (http. ListenAndServe(":8080", nula))
}
Možete stvoriti instancu usmjerivača s Zadano metoda džin paket. The DOBITI metoda za GET zahtjeve uzima stazu (krajnju točku) i deklaraciju funkcije rukovatelja. Ovaj primjer funkcije vraća a 200 HTTP statusni kod klijentu i uspješan JSON odgovor u tijelu odgovora.
2. Fiber Framework
Vlakno siguran je za pamćenje, Nalik na ExpressJS okvir izgrađen na munjevito brzom brzihttp paket. Nudi izvrsnu izvedbu i namijenjen je početnicima i iskusnim Javascript backend programerima.
Fiber ima većinu funkcionalnosti koje ćete trebati u pozadinskom okviru. Bavi se usmjeravanjem, grupiranjem zahtjeva, provjerom valjanosti, izradom predložaka, kukicama, rukovanjem pogreškama i još mnogo toga. Fiber je proširiv, a Fiber možete učiniti bržim pomoću prilagođenog kodera i dekodera.
Instalirajte najnoviju verziju (v2) okvira Fiber ovom naredbom:
ići dobiti github.com/gofiber/fiber/v2
Evo kako možete postaviti jednostavnu krajnju točku GET zahtjeva s okvirom Fiber.
uvoz "github.com/gofiber/fiber/v2"
funkglavni() {
app := vlakno. Novi()aplikacija Get("/zdravo", funk(ctx *vlakna. Ctx)greška {
povratak ctx. SendString("Zdravo")
})
log. Fatalno (ap. Slušati(":8080"))
}
The Novi metoda vraća novu instancu aplikacije Fiber. The Dobiti metoda je za postavljanje DOBITI zahtjevi. U ovom slučaju, /hello endpoint vraća niz zdravo.
Postavili ste aplikaciju da sluša port localhost port 8080 s Slušati metoda aplikacije.
3. Iris okvir
Iris je višeplatformski, učinkovit, potpun, dobro dizajniran web okvir. Možete ga koristiti za izradu prijenosnih API-ja i web-aplikacija visokih performansi u Gou. Kao i Fiber, Iris je ExpressJS inspirira neke od dizajnerskih uzoraka u Irisu.
Uz Iris možete brzo izraditi aplikacije bez poslužitelja i implementirati ih na AWS, Netlify i mnoge druge usluge. Paket Iris ima CLI aplikaciju koju možete koristiti za ponovno učitavanje predložaka Iris uživo i praćenje svoje aplikacije.
Paket Iris ima značajke koje razvoj čine iznimno lakim. Iris ima API sličan Sinatri koji se brine za bilježenje, usmjeravanje, sesije i Websockets. Također podržava GRPC, posluživanje datoteka, autentifikaciju, autorizaciju i funkcionalnost testiranja.
Pokrenite ovu naredbu na terminalu vašeg radnog prostora kako biste instalirali okvir Iris na svoje Go module.
ići dobiti github.com/kataras/iris/v12@lastest
Evo kako možete postaviti a DOBITI zahtjev s okvirom Iris za izvođenje na portu lokalnog hosta 8080.
uvoz "github.com/kataras/iris/v12"
funkglavni() {
app := iris. Novi() // nova instanca Irisaplikacija Handle("GET", "/hello", funk(ctx iris. Kontekst) {
_, pogreška := ctx. JSON(iris. Karta{"message": "hello"})ako pogriješiti != nula {
povratak
}
})pogreška := pril. Trči (iris. Addr(":8080"), iris. WithoutServerError (iris. ErrServerClosed))
ako pogriješiti != nula {
povratak
}
}
The aplikacija varijabla je instanca nove Iris aplikacije. The DOBITI rukovatelj vraća JSON poruku za zahtjev na /hello ruta.
4. Beego okvir
Beego je jednostavan za korištenje, inteligentan i vrlo učinkovit Go okvir za izradu web aplikacija. Beego čini izradu modularnih aplikacija jednostavnom. Dolazi s ugrađenim ORM-om (object-relational mapper) i usmjerivačem, uz funkciju izrade predložaka.
Beego integrira mogućnosti specifične za Go sa sučeljima i ugradnjom strukture. Ima izvrsnu strukturu API-ja, optimiziranu za brzinu sa sesijom i podrškom za implementaciju i internalizacijom.
Beego je široko rasprostranjen, a mnoge tvrtke, od Opere do Huaweia, Tencenta i Weica, koriste Beego u proizvodnji.
Ovu naredbu možete koristiti za instaliranje Beego Frameworka u svoj projekt.
ići dobiti -u github.com/beego/beego/v2
Evo kako možete postaviti jednostavan DOBITI zatražite API krajnju točku s Beego okvirom.
uvoz "github.com/beego/beego/v2/server/web"
tip ControllerInstance strukturirati {
mreža. Kontrolor // ulazna točka za beego aplikaciju
}funk(kontroler *ControllerInstance)Dobiti() {
kontrolor. Ctx. WriteString("zdravo svijetu")
}
funkglavni() {
mreža. Usmjerivač("/hello", &ControllerInstance{}) // montaža s beego
mreža. Trčanje() // pokretanje beego aplikacije
}
The ControllerInstance struct je ulazna točka Beego aplikacije. The Dobiti funkcija rukovatelja sadrži logiku za a DOBITI zahtjev za /hello krajnja točka. Kao odgovor vraća niz "hello world".
5. Okvir Revel
Revel blista zbog fleksibilnosti koju pruža za izradu web aplikacija. Možete koristiti Revelovo usmjeravanje sigurnog tipa, izgraditi kontrolere i koristiti Go predlošci s Revelom.
Revel pruža funkcionalnost za usmjeravanje, jednostavno JSON kodiranje i dekodiranje i rukovanje sesijom. Također uključuje funkcije za rukovanje predmemorijom, otklanjanje pogrešaka i testiranje web-aplikacija. Revel ima CLI paket za izradu CLI-ja za vaše aplikacije. Možete posluživati statične datoteke s Revelom i graditi aplikacije za chat s njegovom funkcijom Websocket.
Instalirajte okvir Revel u direktorij vašeg projekta ovom naredbom:
ići dobiti github.com/revel/revel
Lako je postaviti aplikaciju Revel. Evo jednostavne funkcije rukovatelja za a DOBITI krajnju točku zahtjeva s okvirom Revel.
uvoz (
"github.com/revel/revel"
)tip Model strukturirati { // jednostavna struktura modela
Poruka niz`json:"poruka"`
Opis niz`json:"opis"`
}tip aplikacija strukturirati {
*zabava. Kontrolor // ulazna točka za zahtjeve
}funk(aplikacija aplikacija)zdravo()uživanje.Proizlaziti {
model := model{
Poruka: "uspjeh",
Opis: "Hello!, World",
}
aplikacija Odgovor. ContentType = "aplikacija/json"
povratak aplikacija RenderJSON(model)
}
The aplikacija struct je ulazna točka aplikacije Revel. Vaši rukovatelji će implementirati strukturu aplikacije. Vrsta sadržaja odgovora je JSON, a zdravo funkcija rukovatelja vraća kodiranu JSON strukturu.
Pazite na razliku između usmjerivača i okvira
U ekosustavu Go pronaći ćete mnoge web pakete, od kojih su većina usmjerivači ili okviri. Usmjerivači služe za primanje zahtjeva putem HTTP protokola.
Trebat će vam dodatni paketi za rad s usmjerivačima. Kao i oni u ovom vodiču, većina okvira uključuje ugrađene usmjerivače uz druge funkcije.