Nettutvikling er ett av mange felt der du kan bruke Go. Mange selskaper og prosjekter bruker Go på baksiden av nettapplikasjonene sine, hovedsakelig for hastigheten, brukervennligheten og pakkeøkosystemet.

De net/http pakken har det meste av funksjonaliteten du trenger for å bygge nettapplikasjoner i Go. Du kan bruke andre pakker fra det funksjonsrike standardbiblioteket. De koding pakken håndterer datakonvertering på lavt nivå og html pakken lar deg samhandle med nettsider.

Utover dette gir Gos økosystem av tredjepartspakker ekstra funksjoner for å hjelpe webutvikling.

1. Gin-rammeverket

Gin er en av Gos mest populære nettutviklingspakker. Gin er et høyytende mikrorammeverk for å bygge nettapplikasjoner og mikrotjenester i Go.

Gin er rask og gir innebygd gjengivelse, mellomvare og JSON-valideringsfunksjonalitet. Den har enkel feilhåndtering og utvidbarhet. Du kan dokumentere Gin-applikasjonene dine med OpenAPI3-spesifikasjonen og swagger.

Gin har en Martini-lignende API, og prosjektet hevder å være førti ganger raskere. For mikrotjenester kan du gjenbruke Gins modulære komponenter for å utvikle forespørselshåndteringsrørledninger.

Du kan installere Gin-rammeverket med denne kommandoen:

 skaff deg github.com/gin-gonic/gin

Her er hvordan du setter opp et enkelt forespørselendepunkt med Gin-rammeverket.

import (
"github.com/gin-gonic/gin"
"Logg"
"net/http"
)

funchoved-() {
ruter := gin. Misligholde()

ruter. GET("/hei", func(kontekst *gin. Kontekst) {
kontekst. JSON(http. StatusOK, gin. H{"success": "Har nådd endepunktet"})
})

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

Du kan opprette en ruterforekomst med Misligholde metoden for gin pakke. De metode for GET-forespørsler tar inn banen (endepunktet) og en behandlerfunksjonserklæring. Denne eksempelfunksjonen returnerer en 200 HTTP-statuskode til klienten og et vellykket JSON-svar i svarteksten.

2. Fiberrammeverket

Fiber er en minnesikker, ExpressJS-lignende rammeverk bygget på det lynende raske raskhttp pakke. Den tilbyr god ytelse og retter seg mot nybegynnere og erfarne Javascript-backend-utviklere.

Fiber har det meste av funksjonaliteten du trenger i et backend-rammeverk. Den håndterer ruting, forespørselsgruppering, validering, maler, kroker, feilhåndtering og mye mer. Fiber kan utvides, og du kan gjøre Fiber raskere ved å bruke en tilpasset koder og dekoder.

Installer den nyeste versjonen (v2) av Fiber-rammeverket med denne kommandoen:

 skaff deg github.com/gofiber/fiber/v2

Her er hvordan du kan sette opp et enkelt GET-forespørselendepunkt med Fiber-rammeverket.

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

funchoved-() {
app := fiber. Ny()

app. Get("/hei", func(ctx *fiber. Ctx)feil {
komme tilbake ctx. SendString("Hei")
})

Logg. Fatal (app. Lytte(":8080"))
}

De Ny metoden returnerer en ny forekomst av en Fiber-app. De metoden er for å sette opp forespørsler. I dette tilfellet /hello endepunkt returnerer strengen Hallo.

Du setter opp appen til å lytte på port localhost-port 8080 med Lytte metoden til appen.

3. Iris-rammeverket

Iris er et tverrplattform, effektivt, fullverdig, godt designet nettrammeverk. Du kan bruke den til å bygge høyytende, bærbare APIer og nettapper i Go. I likhet med Fiber, inspirerer Iris er ExpressJS noen av designmønstrene i Iris.

Du kan raskt bygge serverløse apper med Iris og distribuere dem på AWS, Netlify og mange andre tjenester. Iris-pakken har en CLI-app som du kan bruke til å laste inn Iris-maler på nytt og overvåke appen din.

Iris-pakken har funksjoner som gjør utviklingen ekstremt enkel. Iris har en Sinatra-lignende API som passer for logging, ruting, økter og Websockets. Den støtter også GRPC, filservering, autentisering, autorisasjon og testfunksjonalitet.

Kjør denne kommandoen i terminalen på arbeidsområdet for å installere Iris-rammeverket til Go-modulene.

 skaff deg github.com/kataras/iris/v12@lastest

Slik kan du sette opp en forespørsel med Iris-rammeverket om å kjøre på localhost-porten 8080.

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

funchoved-() {
app := iris. Ny() // ny Iris-forekomst

app. Handle("GET", "/hei", func(ctx iris. Kontekst) {
_, feil := ctx. JSON(iris. Kart{"message": "hallo"})

hvis feil!= null {
komme tilbake
}
})

feil := app. Løp (iris. Adr(":8080"), iris. WithoutServerError (iris. ErrServerClosed))

hvis feil!= null {
komme tilbake
}
}

De app variabel er forekomsten av en ny Iris-app. De handler returnerer en JSON-melding for å be om på /hello rute.

4. Beego-rammeverket

Beego er et brukervennlig, intelligent og svært ytende Go-rammeverk for å bygge nettapper. Beego gjør det enkelt å bygge modulære applikasjoner. Den kommer med en innebygd ORM (objektrelasjonell kartlegger) og ruter, sammen med malfunksjonalitet.

Beego integrerer Go-spesifikke funksjoner med grensesnitt og strukturinnbygging. Den har en flott API-struktur, optimalisert for hastighet med økt- og distribusjonsstøtte og internalisering.

Beego er utbredt, og mange selskaper, fra Opera til Huawei, Tencent og Weico, bruker Beego i produksjonen.

Du kan bruke denne kommandoen til å installere Beego Framework i prosjektet ditt.

 få -u github.com/beego/beego/v2

Her er hvordan du kan sette opp en enkel be om API-endepunkt med Beego-rammeverket.

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

type ControllerInstance struktur {
web. Kontroller // inngangspunkt for beego-appen
}

func(kontroller *ControllerInstance)() {
kontrolleren. Ctx. WriteString ("hei verden")
}

funchoved-() {
web. Ruter("/hello", &ControllerInstance{}) // montering med beego
web. Løpe() // kjører beego-appen
}

De ControllerInstance struct er inngangspunktet til Beego-appen. De handlerfunksjonen inneholder logikken for en forespørsel til /hello endepunkt. Den returnerer "hello world"-strengen som et svar.

5. Revel Framework

Revel skinner for fleksibiliteten det gir for å bygge webapplikasjoner. Du kan bruke Revels typesikre ruting, bygge kontrollere og bruke Gå maler med Revel.

Revel gir funksjonalitet for ruting, enkel JSON-koding og dekoding og økthåndtering. Den inkluderer også funksjoner for å håndtere hurtigbufring, feilsøking og testing av nettapper. Revel har en CLI-pakke for å bygge CLI-er for appene dine. Du kan vise statiske filer med Revel og bygge chat-apper med Websocket-funksjonaliteten.

Installer Revel-rammeverket i prosjektkatalogen din med denne kommandoen:

 skaff deg github.com/revel/revel

Det er enkelt å sette opp en Revel-app. Her er en enkel behandlerfunksjon for en be om endepunkt med Revel-rammeverket.

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

type Modell struktur { // enkel modellstruktur
Beskjed streng`json:"melding"`
Beskrivelse streng`json:"beskrivelse"`
}

type App struktur {
*fryse. Kontroller // inngangspunkt for forespørslene
}

func(app-app)Hallo()fråtse.Resultat {
modell := Modell{
Melding: "suksess",
Beskrivelse: "Hello!, World",
}

app. Respons. ContentType = "application/json"
komme tilbake app. RenderJSON(modell)
}

De App struct er inngangspunktet til Revel-appen. Dine behandlere vil implementere appstrukturen. Responsinnholdstypen er JSON, og Hallo handlerfunksjonen returnerer en kodet JSON-struktur.

Pass på forskjellen mellom rutere og rammeverk

Du finner mange nettpakker i Go-økosystemet, hvorav de fleste er rutere eller rammeverk. Rutere er for å motta forespørsler gjennom HTTP-protokollen.

Du trenger flere pakker for å fungere med rutere. Som de i denne opplæringen, inkluderer de fleste rammeverk innebygde rutere sammen med annen funksjonalitet.