Lo sviluppo web è uno dei tanti campi in cui puoi usare Go. Molte aziende e progetti utilizzano Go sul back-end delle loro applicazioni Web, principalmente per la sua velocità, facilità d'uso e ecosistema di pacchetti.

Il rete/http pacchetto ha la maggior parte delle funzionalità necessarie per creare applicazioni Web in Go. È possibile utilizzare altri pacchetti dalla libreria standard ricca di funzionalità. Il codifica il pacchetto gestisce la conversione dei dati di basso livello e il html il pacchetto ti consente di interagire con le pagine web.

Oltre a questo, l'ecosistema di pacchetti di terze parti di Go offre funzionalità extra per aiutare lo sviluppo web.

1. La struttura del gin

Gin è uno dei pacchetti di sviluppo web più popolari di Go. Gin è un micro-framework ad alte prestazioni per la creazione di applicazioni Web e microservizi in Go.

Gin è veloce e fornisce funzionalità integrate di rendering, middleware e convalida JSON. Vanta una facile gestione degli errori ed estensibilità. Puoi documentare le tue applicazioni Gin con le specifiche e la spavalderia di OpenAPI3.

instagram viewer

Gin presenta un'API simile a Martini e il progetto afferma di essere quaranta volte più veloce. Per i microservizi, puoi riutilizzare i componenti modulari di Gin per sviluppare pipeline di gestione delle richieste.

Puoi installare il framework Gin con questo comando:

andare ottenere github.com/gin-gonic/gin

Ecco come configurare un semplice endpoint di richiesta con il framework Gin.

importare (
"github.com/gin-gonic/gin"
"tronco d'albero"
"rete/http"
)

funzprincipale() {
router := gin. Predefinito()

router. OTTIENI("/ciao", funz(contesto *gin. Contesto) {
contesto. JSON(http. StatoOK, gin. H{"success": "Raggiungere con successo l'endpoint"})
})

tronco d'albero. Fatalln (http. ListenAndServe(":8080", zero))
}

Puoi creare un'istanza router con Predefinito metodo del Gin pacchetto. Il OTTENERE il metodo per le richieste GET accetta il percorso (endpoint) e una dichiarazione di funzione del gestore. Questa funzione di esempio restituisce a 200 Codice di stato HTTP al client e una risposta JSON corretta nel corpo della risposta.

2. La struttura in fibra

Fibra è una memoria sicura, Simile a ExpressJS struttura costruita sul velocissimo veloce http pacchetto. Offre grandi prestazioni e si rivolge a principianti e sviluppatori di backend Javascript esperti.

La fibra offre la maggior parte delle funzionalità di cui avrai bisogno in un framework di back-end. Gestisce il routing, il raggruppamento delle richieste, la convalida, la creazione di modelli, gli hook, la gestione degli errori e molto altro. La fibra è estensibile e puoi renderla più veloce utilizzando un codificatore e un decodificatore personalizzati.

Installa l'ultima versione (v2) del framework Fiber con questo comando:

andare ottenere github.com/gofiber/fiber/v2

Ecco come impostare un semplice endpoint di richiesta GET con il framework Fiber.

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

funzprincipale() {
app := fibra. Nuovo()

app. Ottieni("/ciao", funz(ctx *fibra. Ctx)errore {
Restituzione ctx. SendString("Ciao")
})

tronco d'albero. fatale (app. Ascolta(":8080"))
}

Il Nuovo restituisce una nuova istanza di un'app Fiber. Il Ottenere il metodo è per la configurazione OTTENERE richieste. In questo caso, il /hello endpoint restituisce la stringa Ciao.

Hai configurato l'app per l'ascolto sulla porta port localhost 8080 con il Ascolta metodo dell'app.

3. La struttura dell'iride

Iris è un framework web multipiattaforma, efficiente, completo e ben progettato. Puoi usarlo per creare API portatili e app Web ad alte prestazioni in Go. Come Fiber, Iris is ExpressJS ispira alcuni dei modelli di design in Iris.

Puoi creare rapidamente app serverless con Iris e distribuirle su AWS, Netlify e molti altri servizi. Il pacchetto Iris include un'app CLI che puoi utilizzare per ricaricare in tempo reale i modelli Iris e monitorare la tua app.

Il pacchetto Iris ha caratteristiche che rendono lo sviluppo estremamente semplice. Iris ha un'API simile a Sinatra che si occupa di registrazione, routing, sessioni e Websocket. Supporta anche GRPC, file serving, autenticazione, autorizzazione e funzionalità di test.

Esegui questo comando nel terminale del tuo spazio di lavoro per installare il framework Iris sui tuoi moduli Go.

andare ottenere github.com/kataras/iris/v12@lastest

Ecco come puoi impostare a OTTENERE richiesta con il framework Iris per l'esecuzione sulla porta localhost 8080.

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

funzprincipale() {
app := iride. Nuovo() // nuova istanza di Iris

app. Handle("GET", "/ciao", funz(ctx iris. Contesto) {
_, err := ctx. JSON(iris. Mappa{"messaggio": "ciao"})

Se ehm!= zero {
Restituzione
}
})

err := app. Corri (iride. Indirizzo(":8080"), iride. SenzaServerError (iris. ErrServerClosed))

Se ehm!= zero {
Restituzione
}
}

Il app variabile è l'istanza di una nuova app Iris. Il OTTENERE handler restituisce un messaggio JSON da richiedere su /hello percorso.

4. Il quadro Beego

Beego è un framework Go facile da usare, intelligente e altamente performante per la creazione di app Web. Beego rende semplice la costruzione di applicazioni modulari. Viene fornito con un ORM (mapper relazionale di oggetti) e un router integrati, oltre alla funzionalità di creazione di modelli.

Beego integra funzionalità specifiche di Go con interfacce e incorporamento di strutture. Ha un'ottima struttura API, ottimizzata per la velocità con il supporto e l'internalizzazione di sessioni e distribuzione.

Beego è molto diffuso e molte aziende, da Opera a Huawei, Tencent e Weico, utilizzano Beego nella produzione.

Puoi usare questo comando per installare Beego Framework nel tuo progetto.

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

Ecco come puoi impostare un semplice OTTENERE richiedere l'endpoint API con il framework Beego.

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

genere ControllerInstance struttura {
ragnatela. Controllore // Punto di ingresso per l'app beego
}

funz(controller *ControllerInstance)Ottenere() {
controllore. Ctx. WriteString("ciao mondo")
}

funzprincipale() {
ragnatela. Router("/ciao", &Istanza controller{}) // montaggio con beego
ragnatela. Correre() // esecuzione dell'app beego
}

Il ControllerInstance struct è il punto di ingresso dell'app Beego. Il Ottenere funzione handler contiene la logica per a OTTENERE richiesta al /hello punto finale. Restituisce la stringa "hello world" come risposta.

5. Il quadro della rivelazione

Rivela brilla per la flessibilità che fornisce per la creazione di applicazioni web. È possibile utilizzare il routing type-safe di Revel, i controller di build e l'uso Vai modelli con Revel.

Revel fornisce funzionalità per il routing, la facile codifica e decodifica JSON e la gestione delle sessioni. Include anche funzioni per gestire la memorizzazione nella cache, il debug e il test delle app Web. Revel ha un pacchetto CLI per la creazione di CLI per le tue app. Puoi servire file statici con Revel e creare app di chat con la sua funzionalità Websocket.

Installa il framework Revel nella directory del tuo progetto con questo comando:

andare ottenere github.com/revel/revel

È facile configurare un'app Revel. Ecco una semplice funzione di gestione per a OTTENERE richiedere l'endpoint con il framework Revel.

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

genere Modello struttura { // struttura del modello semplice
Messaggio corda`json:"messaggio"`
Descrizione corda`json:"descrizione"`
}

genere App struttura {
*divertimento. Controllore // punto di ingresso per le richieste
}

funz(app app)Ciao()baldoria.Risultato {
modello := Modello{
Messaggio: "successo",
Descrizione: "Ciao!, Mondo",
}

app. Risposta. ContentType = "applicazione/json"
Restituzione app. RenderJSON(modello)
}

Il App struct è il punto di ingresso dell'app Revel. I tuoi gestori implementeranno la struttura dell'app. Il tipo di contenuto della risposta è JSON e il Ciao la funzione del gestore restituisce una struttura JSON codificata.

Attenzione alla differenza tra router e framework

Troverai molti pacchetti web nell'ecosistema Go, la maggior parte dei quali sono router o framework. I router servono a ricevere richieste tramite il protocollo HTTP.

Avrai bisogno di pacchetti aggiuntivi per lavorare con i router. Come quelli in questo tutorial, la maggior parte dei framework include router integrati insieme ad altre funzionalità.