Dezvoltarea web este unul dintre multele domenii în care puteți utiliza Go. Multe companii și proiecte folosesc Go în backend-ul aplicațiilor lor web, în principal pentru viteza, ușurința de utilizare și ecosistemul de pachete.
The net/http pachetul are cea mai mare parte a funcționalității de care veți avea nevoie pentru a crea aplicații web în Go. Puteți utiliza alte pachete din biblioteca standard bogată în funcții. The codificare pachetul gestionează conversia datelor la nivel scăzut și html pachetul vă permite să interacționați cu paginile web.
Dincolo de aceasta, ecosistemul Go de pachete terțe oferă funcții suplimentare pentru a ajuta dezvoltarea web.
1. Cadrul Gin
Gin este unul dintre cele mai populare pachete de dezvoltare web ale Go. Gin este un micro-cadru foarte performant pentru construirea de aplicații web și microservicii în Go.
Gin este rapid și oferă funcționalitate încorporată de randare, middleware și validare JSON. Se mândrește cu gestionarea ușoară a erorilor și extindere. Vă puteți documenta aplicațiile Gin cu specificațiile OpenAPI3 și cu stăpânire.
Gin are un API asemănător Martini, iar proiectul pretinde că este de patruzeci de ori mai rapid. Pentru microservicii, puteți reutiliza componentele modulare ale Gin pentru a dezvolta conducte de gestionare a cererilor.
Puteți instala cadrul Gin cu această comandă:
merge obțineți github.com/gin-gonic/gin
Iată cum să configurați un punct final de solicitare simplă cu cadrul Gin.
import (
„github.com/gin-gonic/gin”
"Buturuga"
"net/http"
)funcprincipal() {
router := gin. Mod implicit()router. GET("/bună ziua", func(context *gin. Context) {
context. JSON(http. Stare OK, gin. H{"success": "Loviți cu succes punctul final"})
})
Buturuga. Fatalln (http. ListenAndServe(":8080", zero))
}
Puteți crea o instanță de router cu Mod implicit metoda de gin pachet. The OBȚINE metoda pentru cererile GET preia calea (punctul final) și o declarație a funcției de gestionare. Acest exemplu de funcție returnează a 200 Cod de stare HTTP către client și un răspuns JSON de succes în corpul răspunsului.
2. Cadrul de fibre
Fibră este sigur pentru memorie, asemănător cu ExpressJS cadru construit pe uimitor de rapid rapidhttp pachet. Oferă performanțe grozave și vizează începătorii și dezvoltatorii backend Javascript experimentați.
Fibre oferă cea mai mare parte a funcționalității de care veți avea nevoie într-un cadru de backend. Se ocupă de rutare, gruparea cererilor, validare, șabloane, cârlige, gestionarea erorilor și multe altele. Fibra este extensibilă și o puteți face mai rapidă folosind un codificator și un decodor personalizat.
Instalați cea mai recentă versiune (v2) a cadrului Fiber cu această comandă:
merge obțineți github.com/gofiber/fiber/v2
Iată cum puteți configura un punct final de solicitare GET simplu cu cadrul Fiber.
import „github.com/gofiber/fiber/v2”
funcprincipal() {
aplicație:= fibră. Nou()aplicația. Get("/bună ziua", func(ctx *fibră. Ctx)eroare {
întoarcere ctx. SendString(„Bună ziua”)
})
Buturuga. Fatal (aplicație. Asculta(":8080"))
}
The Nou metoda returnează o nouă instanță a unei aplicații Fiber. The obține metoda este de configurare OBȚINE cereri. În acest caz, /hello endpoint returnează șirul Buna ziua.
Ați configurat aplicația să asculte pe portul localhost 8080 cu Asculta metoda aplicației.
3. Cadrul Iris
Iris este un cadru web multiplatform, eficient, cu drepturi depline, bine conceput. Îl puteți folosi pentru a crea aplicații web și API-uri portabile de înaltă performanță în Go. La fel ca Fiber, Iris is ExpressJS inspiră unele dintre modelele de design din Iris.
Puteți crea rapid aplicații fără server cu Iris și le puteți implementa pe AWS, Netlify și multe alte servicii. Pachetul Iris are o aplicație CLI pe care o puteți folosi pentru reîncărcarea live a șabloanelor Iris și monitorizarea aplicației.
Pachetul Iris are caracteristici care fac dezvoltarea extrem de ușoară. Iris are un API asemănător Sinatra, care se referă la înregistrare, rutare, sesiuni și Websockets. De asemenea, acceptă GRPC, servirea fișierelor, autentificarea, autorizarea și funcționalitatea de testare.
Rulați această comandă în terminalul spațiului dvs. de lucru pentru a instala cadrul Iris pe modulele dvs. Go.
merge obțineți github.com/kataras/iris/v12@lastest
Iată cum puteți configura un OBȚINE cerere cu cadrul Iris pentru a rula pe portul localhost 8080.
import „github.com/kataras/iris/v12”
funcprincipal() {
aplicație:= iris. Nou() // noua instanță Irisaplicația. Handle ("GET", "/bună ziua", func(ctx iris. Context) {
_, err := ctx. JSON(iris. Hartă{"message": "hello"})dacă greș!= zero {
întoarcere
}
})err := app. Fugi (iris. Adresa(":8080"), iris. WithoutServerError (iris. ErrServerClosed))
dacă greș!= zero {
întoarcere
}
}
The aplicația variabila este instanța unei noi aplicații Iris. The OBȚINE handler returnează un mesaj JSON pentru a solicita pe /hello traseu.
4. Cadrul Beego
Beego este un cadru Go ușor de utilizat, inteligent și foarte performant pentru construirea de aplicații web. Beego simplifică construirea aplicațiilor modulare. Vine cu un ORM (obiect-relational mapper) și un router încorporate, alături de funcționalitatea de șabloane.
Beego integrează capabilitățile specifice Go-ului cu interfețe și încorporarea structurilor. Are o structură API excelentă, optimizată pentru viteză, cu suport și internalizare pentru sesiune și implementare.
Beego este larg răspândit și multe companii, de la Opera la Huawei, Tencent și Weico, folosesc Beego în producție.
Puteți utiliza această comandă pentru a instala Beego Framework în proiectul dvs.
merge obține -u github.com/beego/beego/v2
Iată cum puteți configura un simplu OBȚINE solicitați un punct final API cu cadrul Beego.
import „github.com/beego/beego/v2/server/web”
tip ControllerInstance struct {
web. Controlor // punct de intrare pentru aplicația beego
}func(controller *ControllerInstance)obține() {
controlor. Ctx. WriteString ("bună lume")
}
funcprincipal() {
web. Router("/bună ziua", &ControllerInstance{}) // montare cu beego
web. Alerga() // rulează aplicația beego
}
The ControllerInstance struct este punctul de intrare al aplicației Beego. The obține funcția de gestionare conține logica pentru a OBȚINE cerere către /hello punct final. Returnează șirul „hello world” ca răspuns.
5. Cadrul Revel
Revel strălucește pentru flexibilitatea pe care o oferă pentru construirea de aplicații web. Puteți utiliza rutarea sigură de tip Revel, puteți construi controlere și puteți utiliza Go șabloane cu Revel.
Revel oferă funcționalități pentru rutare, codificare și decodare JSON ușoară și gestionarea sesiunii. De asemenea, include funcții pentru a gestiona stocarea în cache, depanarea și testarea aplicațiilor web. Revel are un pachet CLI pentru a construi CLI pentru aplicațiile dvs. Puteți servi fișiere statice cu Revel și puteți crea aplicații de chat cu funcționalitatea sa Websocket.
Instalați cadrul Revel în directorul de proiect cu această comandă:
merge obțineți github.com/revel/revel
Este ușor să configurați o aplicație Revel. Iată o funcție simplă de gestionare pentru a OBȚINE solicită punctul final cu cadrul Revel.
import (
„github.com/revel/revel”
)tip Model struct { // struct model simplu
Mesaj şir`json:"mesaj"`
Descriere şir`json:"descriere"`
}tip App struct {
*revel. Controlor // punct de intrare pentru cereri
}func(aplicația aplicației)Buna ziua()se delectează.Rezultat {
model := Model{
Mesaj: „succes”,
Descriere: „Bună ziua!, Lume”,
}
aplicația. Raspuns. ContentType = „aplicație/json”
întoarcere aplicația. RenderJSON(model)
}
The App struct este punctul de intrare al aplicației Revel. Managerii dvs. vor implementa structura aplicației. Tipul de conținut al răspunsului este JSON și Buna ziua funcția de gestionare returnează o structură JSON codificată.
Atenție la diferența dintre routere și cadre
Veți găsi multe pachete web în ecosistemul Go, dintre care majoritatea sunt routere sau cadre. Routerele sunt pentru primirea cererilor prin protocolul HTTP.
Veți avea nevoie de pachete suplimentare pentru a lucra cu routere. La fel ca cele din acest tutorial, majoritatea cadrelor includ routere încorporate alături de alte funcționalități.