Tīmekļa izstrāde ir viena no daudzajām jomām, kurās varat izmantot Go. Daudzi uzņēmumi un projekti izmanto Go savu tīmekļa lietojumprogrammu aizmugurē, galvenokārt tā ātruma, ērtas lietošanas un pakotņu ekosistēmas dēļ.
The net/http pakotnei ir lielākā daļa funkcionalitātes, kas jums nepieciešamas, lai izveidotu tīmekļa lietojumprogrammas Go. Varat izmantot citas pakotnes no funkcijām bagātās standarta bibliotēkas. The kodējums pakotne apstrādā zema līmeņa datu konvertēšanu un html pakotne ļauj mijiedarboties ar tīmekļa lapām.
Turklāt Go trešo pušu pakotņu ekosistēma nodrošina papildu funkcijas tīmekļa izstrādei.
1. Džina sistēma
Džins ir viena no Go populārākajām tīmekļa izstrādes pakotnēm. Gin ir ļoti jaudīgs mikroietvars tīmekļa lietojumprogrammu un mikropakalpojumu izveidei pakalpojumā Go.
Gin ir ātrs un nodrošina iebūvētu renderēšanas, starpprogrammatūras un JSON validācijas funkcionalitāti. Tas lepojas ar vienkāršu kļūdu pārvaldību un paplašināmību. Jūs varat dokumentēt savas Gin lietojumprogrammas, izmantojot OpenAPI3 specifikācijas un izmaiņas.
Džinam ir Martini līdzīga API, un projekts apgalvo, ka ir četrdesmit reizes ātrāks. Mikropakalpojumiem varat atkārtoti izmantot Gin moduļu komponentus, lai izstrādātu pieprasījumu apstrādes cauruļvadus.
Jūs varat instalēt Gin sistēmu ar šo komandu:
aiziet iegūstiet vietni github.com/gin-gonic/gin
Lūk, kā iestatīt vienkāršu pieprasījuma galapunktu ar Gin sistēmu.
imports (
"github.com/gin-gonic/gin"
"baļķis"
"net/http"
)funcgalvenais() {
maršrutētājs := džins. Noklusējums()maršrutētājs. GET("/labdien", func(konteksts *gin. konteksts) {
kontekstā. JSON (http. Statuss OK, gin. H{"veiksmi": "Veiksmīgi sasniegts galapunkts"})
})
žurnāls. Fatalln (http. KlausītiesAndServe(":8080", nulle))
}
Varat izveidot maršrutētāja gadījumu ar Noklusējums metode džins iepakojums. The GŪT metode GET pieprasījumiem izmanto ceļu (galapunktu) un apstrādātāja funkcijas deklarāciju. Šī piemēra funkcija atgriež a 200 HTTP statusa kods klientam un veiksmīga JSON atbilde atbildes pamattekstā.
2. Fiber Framework
Šķiedra ir droša atmiņai, ExpressJS līdzīgs ietvars, kas balstīts uz pārsteidzoši ātri ātri http iepakojums. Tas piedāvā lielisku veiktspēju un ir paredzēts iesācējiem un pieredzējušiem Javascript aizmugursistēmas izstrādātājiem.
Fiber piedāvā lielāko daļu funkcionalitātes, kas jums būs nepieciešama aizmugursistēmas sistēmā. Tas apstrādā maršrutēšanu, pieprasījumu grupēšanu, validāciju, veidņu veidošanu, āķus, kļūdu apstrādi un daudz ko citu. Fiber ir pagarināms, un jūs varat padarīt Fiber ātrāku, izmantojot pielāgotu kodētāju un dekodētāju.
Instalējiet jaunāko Fiber ietvara versiju (v2) ar šo komandu:
aiziet iegūstiet vietni github.com/gofiber/fiber/v2
Tālāk ir norādīts, kā ar Fiber sistēmu varat iestatīt vienkāršu GET pieprasījuma galapunktu.
imports "github.com/gofiber/fiber/v2"
funcgalvenais() {
lietotne := šķiedra. Jauns()lietotne. Get("/sveiki", func(ctx *fiber. Ctx)kļūda {
atgriezties ctx. SendString ("Sveiki")
})
žurnāls. Nāvējošs (apm. Klausieties (":8080"))
}
The Jauns metode atgriež jaunu Fiber lietotnes gadījumu. The gūt metode ir paredzēta iestatīšanai GŪT pieprasījumus. Šajā gadījumā, /hello beigu punkts atgriež virkni Sveiki.
Jūs iestatījāt lietotni, lai klausītos porta localhost portā 8080 Ar Klausies lietotnes metode.
3. Iris ietvars
Iris ir daudzplatformu, efektīva, pilnvērtīga, labi izstrādāta tīmekļa sistēma. Varat to izmantot, lai pakalpojumā Go izveidotu augstas veiktspējas, pārnēsājamas API un tīmekļa lietotnes. Tāpat kā Fiber, arī Iris ir ExpressJS iedvesmo dažus Iris dizaina modeļus.
Izmantojot Iris, varat ātri izveidot bezserveru lietotnes un izvietot tās AWS, Netlify un daudzos citos pakalpojumos. Iris pakotnei ir CLI lietotne, ko varat izmantot, lai tiešraidē atkārtoti ielādētu Iris veidnes un uzraudzītu savu lietotni.
Iris pakotnei ir funkcijas, kas padara izstrādi ārkārtīgi vienkāršu. Iris ir Sinatra līdzīga API, kas nodrošina reģistrēšanu, maršrutēšanu, sesijas un Websockets. Tā atbalsta arī GRPC, failu apkalpošanas, autentifikācijas, autorizācijas un testēšanas funkcionalitāti.
Palaidiet šo komandu darbvietas terminālī, lai Go moduļos instalētu Iris ietvaru.
aiziet iegūstiet github.com/kataras/iris/v12@lastest
Lūk, kā varat iestatīt a GŪT Pieprasījums ar Iris ietvaru darboties localhost portā 8080.
imports "github.com/kataras/iris/v12"
funcgalvenais() {
lietotne := varavīksnene. Jauns() // jauna Iris instancelietotne. Handle ("GET", "/labdien", func(ctx varavīksnene. konteksts) {
_, kļūda := ctx. JSON (īrisa. Karte{"Ziņojums": "Labdien"})ja kļūda! = nulle {
atgriezties
}
})kļūda := lietotne. Skrien (varavīksnene. Adr(":8080"), varavīksnene. BezServerError (iris. ErrServerClosed))
ja kļūda! = nulle {
atgriezties
}
}
The lietotne mainīgais ir jaunas Iris lietotnes gadījums. The GŪT apdarinātājs atgriež JSON ziņojumu, lai to pieprasītu /hello maršruts.
4. Beego ietvars
Beego ir viegli lietojams, inteliģents un ļoti veiktspējīgs Go ietvars tīmekļa lietotņu izveidei. Beego padara moduļu lietojumprogrammu izveidi vienkāršu. Tam ir iebūvēts ORM (objektu relāciju kartētājs) un maršrutētājs, kā arī veidņu funkcionalitāte.
Beego integrē Go specifiskās iespējas ar saskarnēm un struktūru iegulšanu. Tam ir lieliska API struktūra, kas optimizēta ātrumam ar sesijas un izvietošanas atbalstu un internalizāciju.
Beego ir plaši izplatīts, un daudzi uzņēmumi, sākot no Opera līdz Huawei, Tencent un Weico, izmanto Beego ražošanā.
Varat izmantot šo komandu, lai savā projektā instalētu Beego Framework.
aiziet get -u github.com/beego/beego/v2
Lūk, kā varat iestatīt vienkāršu GŪT pieprasīt API galapunktu ar Beego sistēmu.
imports "github.com/beego/beego/v2/server/web"
veids ControllerInstance struktūra {
tīmeklī. Kontrolieris // ieejas punkts lietotnei beego
}func(kontrolieris *ControllerInstance)gūt() {
kontrolieris. Ctx. WriteString ("sveika pasaule")
}
funcgalvenais() {
tīmeklī. Maršrutētājs("/hello", &ControllerInstance{}) // montāža ar beego
tīmeklī. Palaist () // darbojas lietotne Beego
}
The ControllerInstance struct ir Beego lietotnes ieejas punkts. The gūt apdarinātāja funkcija satur a loģiku GŪT pieprasījums uz /hello galapunkts. Tas atgriež virkni “sveiki pasaule” kā atbildi.
5. Revel Framework
Revel izceļas ar elastību, ko tas nodrošina tīmekļa lietojumprogrammu izveidei. Varat izmantot Revel tipa drošo maršrutēšanu, izveidot kontrolierus un lietot Iet uz veidnēm ar Rēveli.
Revel nodrošina funkcionalitāti maršrutēšanai, vienkāršai JSON kodēšanai un dekodēšanai, kā arī sesiju apstrādei. Tas ietver arī funkcijas, lai apstrādātu tīmekļa lietotņu kešatmiņu, atkļūdošanu un testēšanu. Revel ir CLI pakotne, lai izveidotu CLI jūsu lietotnēm. Varat apkalpot statiskus failus, izmantojot Revel, un izveidot tērzēšanas lietotnes, izmantojot tā Websocket funkcionalitāti.
Instalējiet Revel ietvaru savā projekta direktorijā ar šo komandu:
aiziet iegūstiet vietni github.com/revel/revel
Programmas Revel iestatīšana ir vienkārša. Šeit ir vienkārša apdarinātāja funkcija a GŪT pieprasījuma galapunkts ar Revel sistēmu.
imports (
"github.com/revel/revel"
)veids Modelis struktūra { // vienkārša modeļa struktūra
Ziņa virkne`json:"ziņa"`
Apraksts virkne`json:"apraksts"`
}veids App struktūra {
*priecāties. Kontrolieris // pieprasījumu ieejas punkts
}func(lietotnes lietotne)Sveiki()uzdzīvot.Rezultāts {
modelis := modelis{
Ziņojums: "veiksmi",
Apraksts: "Sveika!, pasaule",
}
lietotne. Atbilde. ContentType = "lietojumprogramma/json"
atgriezties lietotne. RenderJSON(modelis)
}
The App struct ir Revel lietotnes ieejas punkts. Jūsu apstrādātāji ieviesīs lietotnes struktūru. Atbildes satura veids ir JSON un Sveiki apdarinātāja funkcija atgriež kodētu JSON struktūru.
Uzmanieties no atšķirībām starp maršrutētājiem un ietvariem
Go ekosistēmā atradīsit daudzas tīmekļa pakotnes, no kurām lielākā daļa ir maršrutētāji vai ietvari. Maršrutētāji ir paredzēti pieprasījumu saņemšanai, izmantojot HTTP protokolu.
Lai strādātu ar maršrutētājiem, jums būs nepieciešamas papildu pakotnes. Tāpat kā šajā apmācībā, lielākajā daļā sistēmu ir iekļauti iebūvēti maršrutētāji līdzās citām funkcijām.