Vývoj webu je jednou z mnohých oblastí, v ktorých môžete Go použiť. Mnoho spoločností a projektov používa Go na backende svojich webových aplikácií, najmä pre jeho rýchlosť, jednoduchosť použitia a ekosystém balíkov.
The net/http obsahuje väčšinu funkcií, ktoré budete potrebovať na vytváranie webových aplikácií v Go. Môžete použiť iné balíky zo štandardnej knižnice bohatej na funkcie. The kódovanie balík spracováva nízkoúrovňovú konverziu dát a html balík umožňuje interakciu s webovými stránkami.
Okrem toho poskytuje ekosystém balíkov tretích strán Go ďalšie funkcie na podporu vývoja webu.
1. Gin Framework
Gin je jedným z najpopulárnejších balíkov na vývoj webu od Go. Gin je vysoko výkonný mikrorámec na vytváranie webových aplikácií a mikroslužieb v Go.
Gin je rýchly a poskytuje vstavané funkcie vykresľovania, midlvéru a overovania JSON. Môže sa pochváliť jednoduchou správou chýb a možnosťou rozšírenia. Svoje aplikácie Gin môžete zdokumentovať pomocou špecifikácie OpenAPI3 a swagger.
Gin obsahuje API podobné Martini a projekt tvrdí, že je štyridsaťkrát rýchlejší. V prípade mikroslužieb môžete znova použiť modulárne komponenty Gin na vývoj kanálov na spracovanie požiadaviek.
Rámec Gin môžete nainštalovať pomocou tohto príkazu:
ísť získajte github.com/gin-gonic/gin
Tu je návod, ako nastaviť jednoduchý koncový bod požiadavky s rámcom Gin.
importovať (
"github.com/gin-gonic/gin"
"log"
"net/http"
)funchlavné() {
router := gin. Predvolené ()router. GET("/ahoj", func(kontext *gin. Kontext) {
kontext. JSON(http. Stav OK, gin. H{"success": "Úspešne ste dosiahli koncový bod"})
})
log. Fatalln (http. Počúvaj a podávaj(":8080", nula))
}
Inštanciu smerovača môžete vytvoriť pomocou súboru Predvolené metóda gin balík. The GET metóda pre požiadavky GET preberá cestu (koncový bod) a deklaráciu funkcie obsluhy. Táto vzorová funkcia vráti a 200 Stavový kód HTTP klientovi a úspešnú odpoveď JSON v tele odpovede.
2. Fiber Framework
Vláknina je pamäťovo bezpečný, ExpressJS rámec postavený na úžasne rýchlom fasthttp balík. Ponúka skvelý výkon a zameriava sa na začiatočníkov a skúsených vývojárov backendu Javascript.
Fiber obsahuje väčšinu funkcií, ktoré budete potrebovať v backendovom rámci. Zaoberá sa smerovaním, zoskupovaním požiadaviek, overovaním, vytváraním šablón, hákmi, spracovaním chýb a oveľa viac. Fiber je rozšíriteľné a môžete ho zrýchliť pomocou vlastného kódovača a dekodéra.
Nainštalujte najnovšiu verziu (v2) rámca Fiber pomocou tohto príkazu:
ísť získajte github.com/gofiber/fiber/v2
Tu je návod, ako môžete nastaviť jednoduchý koncový bod žiadosti GET s rámcom Fiber.
importovať "github.com/gofiber/fiber/v2"
funchlavné() {
app := vláknina. Nový()aplikácie. Získajte("/ahoj", func(ctx *vlákno. Ctx)chyba {
vrátiť ctx. SendString("Ahoj")
})
log. Fatálne (aplik. Počúvajte(":8080"))
}
The Nový metóda vráti novú inštanciu aplikácie Fiber. The Získajte metóda je na nastavenie GET žiadosti. V tomto prípade, /hello endpoint vráti reťazec Ahoj.
Aplikáciu nastavíte tak, aby počúvala na porte localhost 8080 s Počúvaj metóda aplikácie.
3. Iris Framework
Iris je multiplatformový, efektívny, plnohodnotný a dobre navrhnutý webový rámec. Môžete ho použiť na vytváranie vysokovýkonných prenosných rozhraní API a webových aplikácií v Go. Rovnako ako Fiber, Iris is ExpressJS inšpiruje niektoré dizajnové vzory v Iris.
Pomocou Iris môžete rýchlo vytvárať aplikácie bez servera a nasadzovať ich na AWS, Netlify a mnoho ďalších služieb. Balík Iris obsahuje aplikáciu CLI, ktorú môžete použiť na živé načítanie šablón Iris a monitorovanie vašej aplikácie.
Balík Iris má funkcie, vďaka ktorým je vývoj mimoriadne jednoduchý. Iris má API podobné Sinatre, ktoré zabezpečuje protokolovanie, smerovanie, relácie a webové zásuvky. Podporuje tiež GRPC, poskytovanie súborov, autentifikáciu, autorizáciu a testovanie.
Spustite tento príkaz v termináli svojho pracovného priestoru a nainštalujte rámec Iris do modulov Go.
ísť získaj github.com/kataras/iris/v12@latest
Tu je návod, ako môžete nastaviť a GET požiada s rámcom Iris o spustenie na porte localhost 8080.
importovať "github.com/kataras/iris/v12"
funchlavné() {
aplikácia := dúhovka. Nový() // nová inštancia Irisaplikácie. Handle("GET", "/ahoj", func(ctx dúhovka. Kontext) {
_, chyba := ctx. JSON(dúhovka. Mapa{"message": "ahoj"})ak chyba!= nula {
vrátiť
}
})chyba := aplikácia. Bežať (dúhovka. Addr(":8080"), dúhovka. WithoutServerError (iris. ErrServerClosed))
ak chyba!= nula {
vrátiť
}
}
The aplikácie premenná je inštanciou novej aplikácie Iris. The GET handler vráti správu JSON na vyžiadanie /hello trasu.
4. Beego Framework
Beego je ľahko použiteľný, inteligentný a vysoko výkonný rámec Go na vytváranie webových aplikácií. Beego zjednodušuje vytváranie modulárnych aplikácií. Dodáva sa so vstavaným ORM (objektovo-relačný mapovač) a smerovačom spolu s funkciou šablón.
Beego integruje funkcie špecifické pre Go s rozhraniami a vkladaním štruktúr. Má skvelú štruktúru API, optimalizovanú pre rýchlosť s podporou relácie a nasadenia a internalizáciou.
Beego je rozšírené a mnoho spoločností, od Opery po Huawei, Tencent a Weico, používa Beego vo výrobe.
Tento príkaz môžete použiť na inštaláciu Beego Framework do vášho projektu.
ísť get -u github.com/beego/beego/v2
Tu je návod, ako môžete nastaviť jednoduchý GET vyžiadanie koncového bodu API s rámcom Beego.
importovať "github.com/beego/beego/v2/server/web"
typu ControllerInstance štrukturovať {
web. Ovládač // vstupný bod pre aplikáciu beego
}func(ovládač *ControllerInstance)Získajte() {
ovládač. Ctx. WriteString("ahoj svet")
}
funchlavné() {
web. Router("/hello", &ControllerInstance{}) // montáž pomocou beego
web. spustiť() // spustenie aplikácie beego
}
The ControllerInstance struct je vstupným bodom aplikácie Beego. The Získajte funkcia handler obsahuje logiku pre a GET žiadosť na /hello koncový bod. Ako odpoveď vráti reťazec „ahoj svet“.
5. Rámec Revel
Revel vyniká flexibilitou, ktorú poskytuje pri vytváraní webových aplikácií. Môžete použiť typovo bezpečné smerovanie Revel, zostaviť ovládače a používať Prejsť na šablóny s Revelom.
Revel poskytuje funkcie pre smerovanie, jednoduché kódovanie a dekódovanie JSON a spracovanie relácie. Obsahuje tiež funkcie na spracovanie vyrovnávacej pamäte, ladenia a testovania webových aplikácií. Revel má balík CLI na vytváranie CLI pre vaše aplikácie. Pomocou funkcie Revel môžete obsluhovať statické súbory a vytvárať chatovacie aplikácie pomocou funkcie Websocket.
Nainštalujte rámec Revel do adresára projektu pomocou tohto príkazu:
ísť získaj github.com/revel/revel
Nastavenie aplikácie Revel je jednoduché. Tu je jednoduchá funkcia obsluhy pre a GET požiadať o koncový bod s rámcom Revel.
importovať (
"github.com/revel/revel"
)typu Model štrukturovať { // jednoduchá štruktúra modelu
Správa reťazec`json:"správa"`
Popis reťazec`json:"popis"`
}typu App štrukturovať {
*baviť sa. Ovládač // vstupný bod pre požiadavky
}func(aplikácia)Ahoj()kochať sa.Výsledok {
model := model{
Správa: "úspech",
Popis: "Ahoj!, Svet",
}
aplikácie. odpoveď. ContentType = "application/json"
vrátiť aplikácie. RenderJSON(model)
}
The App struct je vstupným bodom aplikácie Revel. Vaši obslužní pracovníci implementujú štruktúru aplikácie. Typ obsahu odpovede je JSON a Ahoj funkcia handler vracia zakódovanú štruktúru JSON.
Dajte si pozor na rozdiel medzi smerovačmi a rámcami
V ekosystéme Go nájdete veľa webových balíkov, z ktorých väčšinu tvoria smerovače alebo rámce. Smerovače slúžia na prijímanie požiadaviek prostredníctvom protokolu HTTP.
Na prácu so smerovačmi budete potrebovať ďalšie balíky. Podobne ako tie v tomto návode, väčšina rámcov obsahuje okrem iných funkcií aj vstavané smerovače.