Veebiarendus on üks paljudest valdkondadest, kus saate Go-d kasutada. Paljud ettevõtted ja projektid kasutavad Go-d oma veebirakenduste taustal, peamiselt selle kiiruse, kasutuslihtsuse ja pakettide ökosüsteemi tõttu.

The net/http paketil on enamik funktsioone, mida vajate Go-s veebirakenduste loomiseks. Saate kasutada ka muid pakette funktsioonirikkast standardteegist. The kodeering pakett käsitleb madala taseme andmete teisendamist ja html pakett võimaldab teil veebilehtedega suhelda.

Lisaks sellele pakub Go kolmandate osapoolte pakettide ökosüsteem veebiarendust abistavaid lisafunktsioone.

1. Džinni raamistik

Džinn on Go üks populaarsemaid veebiarenduspakette. Gin on suure jõudlusega mikroraamistik Go-s veebirakenduste ja mikroteenuste loomiseks.

Gin on kiire ja pakub sisseehitatud renderdus-, vahevara- ja JSON-valideerimisfunktsiooni. Sellel on lihtne veahaldus ja laiendatavus. Saate oma gin-rakendusi dokumenteerida OpenAPI3 spetsifikatsioonide ja näpunäidetega.

Džinnil on Martini-sarnane API ja projekt väidetavalt on nelikümmend korda kiirem. Mikroteenuste puhul saate taaskasutada Gini moodulkomponente, et arendada taotluste haldamise torujuhtmeid.

instagram viewer

Saate installida Gini raamistiku selle käsuga:

mine hankige github.com/gin-gonic/gin

Siit saate teada, kuidas seadistada Gin-raamistikuga lihtne päringu lõpp-punkt.

importida (
"github.com/gin-gonic/gin"
"logi"
"net/http"
)

funcpeamine() {
ruuter := gin. Vaikimisi()

ruuter. GET("/tere", func(kontekst *gin. Kontekst) {
kontekst. JSON(http. Olek OK, gin. H{"edu": "Lõpp-punkti jõudmine õnnestus"})
})

logi. Fatalln (http. ListenAndServe(":8080", null))
}

Ruuteri eksemplari saate luua rakendusega Vaikimisi meetod džinn pakett. The SAADA meetod GET-päringute jaoks võtab tee (lõpp-punkti) ja töötleja funktsiooni deklaratsiooni. See näidisfunktsioon tagastab a 200 HTTP olekukood kliendile ja edukas JSON-vastus vastuse kehas.

2. Fiber Framework

Fiber on mälukindel, ExpressJS-i sarnane raamistik, mis on üles ehitatud ülikiirele kiire http pakett. See pakub suurepärast jõudlust ja on suunatud algajatele ja kogenud Javascripti taustaprogrammi arendajatele.

Fiber sisaldab enamikku taustsüsteemis vajaminevatest funktsioonidest. See käsitleb marsruutimist, taotluste rühmitamist, valideerimist, mallide koostamist, konkse, veakäsitlust ja palju muud. Fiber on pikendatav ja saate Fiberi kiiremaks muuta, kasutades kohandatud kodeerijat ja dekoodrit.

Installige Fiberi raamistiku uusim versioon (v2) selle käsuga:

mine hankige github.com/gofiber/fiber/v2

Siit saate teada, kuidas saate Fiberi raamistikuga seadistada lihtsa GET-päringu lõpp-punkti.

importida "github.com/gofiber/fiber/v2"

funcpeamine() {
rakendus := kiud. Uus()

rakendus. Get("/tere", func(ctx *fiber. Ctx)viga {
tagasi ctx. SendString ("Tere")
})

logi. Saatuslik (u. Kuula (":8080"))
}

The Uus meetod tagastab Fiberi rakenduse uue eksemplari. The Hangi meetod on seadistamiseks SAADA taotlusi. Sel juhul on /hello lõpp-punkt tagastab stringi Tere.

Seadistage rakenduse kuulama pordi kohalikku hosti porti 8080 koos Kuulake rakenduse meetod.

3. Irise raamistik

Iris on platvormideülene, tõhus, täisväärtuslik ja hästi läbimõeldud veebiraamistik. Saate seda kasutada suure jõudlusega kaasaskantavate API-de ja veebirakenduste loomiseks Go-s. Nagu Fiber, inspireerib Iris ExpressJS mõnda Irise disainimustrit.

Irisega saate kiiresti luua serverita rakendusi ja juurutada neid AWS-is, Netlifys ja paljudes teistes teenustes. Irise paketil on CLI rakendus, mida saate kasutada Irise mallide reaalajas uuesti laadimiseks ja rakenduse jälgimiseks.

Irise paketil on funktsioone, mis muudavad arenduse ülimalt lihtsaks. Irisel on Sinatra-sarnane API, mis teenindab logimist, marsruutimist, seansse ja veebisockette. Samuti toetab see GRPC-d, failide teenindamist, autentimist, autoriseerimist ja testimise funktsioone.

Käivitage see käsk oma tööruumi terminalis, et installida Irise raamistik Go moodulitesse.

mine hankige github.com/kataras/iris/v12@lastest

Siin on, kuidas saate seadistada a SAADA taotleda Irise raamistikuga, et see töötaks kohaliku hosti pordis 8080.

importida "github.com/kataras/iris/v12"

funcpeamine() {
rakendus := iiris. Uus() // uus Irise eksemplar

rakendus. Handle("GET", "/tere", func(ctx iiris. Kontekst) {
_, viga := ctx. JSON (iiris. Map{"message": "tere"})

kui eks!= null {
tagasi
}
})

viga := rakendus. Jookse (iiris. Adr(":8080"), iiris. Ilma serveritõrketa (iiris. ErrServerClosed))

kui eks!= null {
tagasi
}
}

The rakendus muutuja on uue Irise rakenduse eksemplar. The SAADA töötleja tagastab JSON-teate, mida taotleda /hello tee.

4. Beego raamistik

Beego on hõlpsasti kasutatav, intelligentne ja suure jõudlusega Go raamistik veebirakenduste loomiseks. Beego muudab modulaarsete rakenduste loomise lihtsaks. See on varustatud sisseehitatud ORM-iga (objektirelatsiooni kaardistaja) ja ruuteriga koos mallifunktsioonidega.

Beego integreerib Go-spetsiifilised võimalused liideste ja struktuuride manustamisega. Sellel on suurepärane API-struktuur, mis on optimeeritud kiiruseks koos seansi ja juurutamise toega ning sisestamisega.

Beego on laialt levinud ja paljud ettevõtted, alates Operast kuni Huawei, Tencenti ja Weiconi, kasutavad Beegot tootmises.

Seda käsku saate kasutada Beego Frameworki installimiseks oma projekti.

mine get -u github.com/beego/beego/v2

Siit saate teada, kuidas saate seadistada lihtsa SAADA taotleda API lõpp-punkti Beego raamistikuga.

importida "github.com/beego/beego/v2/server/web"

tüüp Controller Instance struktuur {
võrk. Kontroller // beego rakenduse sisenemispunkt
}

func(kontroller *ControllerInstance)Hangi() {
kontroller. Ctx. WriteString ("tere maailm")
}

funcpeamine() {
võrk. Ruuter("/tere", &ControllerInstance{}) // monteerimine beegoga
võrk. Käivita () // töötab beego rakendus
}

The Controller Instance struct on Beego rakenduse sisenemispunkt. The Hangi käitleja funktsioon sisaldab loogikat a jaoks SAADA taotlus /hello lõpp-punkt. See tagastab vastusena stringi "tere maailm".

5. Reveli raamistik

Revel paistab silma paindlikkuse poolest, mida see veebirakenduste loomiseks pakub. Saate kasutada Reveli tüübikindlat marsruutimist, luua kontrollereid ja kasutada Mine mallid koos Reveliga.

Revel pakub funktsioone marsruutimiseks, lihtsaks JSON-i kodeerimiseks ja dekodeerimiseks ning seansi haldamiseks. See sisaldab ka funktsioone vahemällu salvestamiseks, silumiseks ja veebirakenduste testimiseks. Revelil on teie rakenduste jaoks CLI-de loomiseks CLI-pakett. Saate Reveliga teenindada staatilisi faile ja luua selle Websocketi funktsiooniga vestlusrakendusi.

Installige Reveli raamistik oma projektikataloogi selle käsuga:

mine hankige github.com/revel/revel

Reveli rakendust on lihtne seadistada. Siin on lihtne töötleja funktsioon a SAADA taotleda lõpp-punkti Reveli raamistikuga.

importida (
"github.com/revel/revel"
)

tüüp Mudel struktuur { // lihtne mudelstruktuur
Sõnum string`json:"sõnum"".
Kirjeldus string`json:"kirjeldus"`
}

tüüp Rakendus struktuur {
*rõõm. Kontroller // taotluste sisenemispunkt
}

func(rakenduse rakendus)Tere()lõbutsema.Tulemus {
mudel := mudel{
Sõnum: "edu",
Kirjeldus: "Tere!, maailm",
}

rakendus. Vastus. ContentType = "rakendus/json"
tagasi rakendus. Renderda JSON (mudel)
}

The Rakendus struct on Reveli rakenduse sisenemispunkt. Teie töötlejad rakendavad rakenduse struktuuri. Vastuse sisutüüp on JSON ja Tere käitleja funktsioon tagastab kodeeritud JSON-struktuuri.

Ettevaatust ruuterite ja raamistike vahel

Go ökosüsteemist leiate palju veebipakette, millest enamik on ruuterid või raamistikud. Ruuterid on mõeldud päringute vastuvõtmiseks HTTP-protokolli kaudu.

Ruuteritega töötamiseks vajate lisapakette. Nagu selles õpetuses, sisaldab enamik raamistikke lisaks muudele funktsioonidele ka sisseehitatud ruutereid.