Vývoj webu je jednou z mnoha oblastí, ve kterých můžete Go použít. Mnoho společností a projektů používá Go na backendu svých webových aplikací, především pro jeho rychlost, snadnost použití a ekosystém balíčků.

The net/http obsahuje většinu funkcí, které budete potřebovat k vytváření webových aplikací v Go. Můžete použít další balíčky ze standardní knihovny s bohatými funkcemi. The kódování balíček zpracovává nízkoúrovňovou konverzi dat a html balíček umožňuje interakci s webovými stránkami.

Kromě toho poskytuje ekosystém balíčků třetích stran Go další funkce, které napomáhají vývoji webu.

1. Gin Framework

Gin je jedním z nejoblíbenějších balíčků pro vývoj webu od Go. Gin je vysoce výkonný mikrorámec pro vytváření webových aplikací a mikroslužeb v Go.

Gin je rychlý a poskytuje vestavěné funkce pro vykreslování, middleware a ověřování JSON. Může se pochlubit snadnou správou chyb a rozšiřitelností. Své aplikace Ginu můžete dokumentovat pomocí specifikace OpenAPI3 a chvástání.

Gin obsahuje API podobné Martini a projekt tvrdí, že je čtyřicetkrát rychlejší. U mikroslužeb můžete znovu použít modulární komponenty Ginu k vývoji kanálů pro zpracování požadavků.

Gin framework můžete nainstalovat pomocí tohoto příkazu:

jít stáhněte si github.com/gin-gonic/gin

Zde je návod, jak nastavit jednoduchý koncový bod požadavku s rámcem Gin.

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

funchlavní() {
router := gin. Výchozí()

router. GET("/ahoj", func(kontext *gin. Kontext) {
kontext. JSON(http. Stav OK, gin. H{"success": "Úspěšně jste dosáhli koncového bodu"})
})

log. Fatalln (http. ListenAndServe(":8080", nula))
}

Instanci routeru můžete vytvořit pomocí Výchozí metoda gin balík. The DOSTAT metoda pro požadavky GET přebírá cestu (koncový bod) a deklaraci funkce handleru. Tato ukázková funkce vrací a 200 Stavový kód HTTP klientovi a úspěšnou odpověď JSON v těle odpovědi.

2. Fiber Framework

Vlákno je paměťově bezpečná, jako ExpressJS rámec postavený na neuvěřitelně rychlém rychlehttp balík. Nabízí skvělý výkon a zaměřuje se na začátečníky i zkušené vývojáře backendu Javascript.

Fiber obsahuje většinu funkcí, které budete potřebovat v backendovém rámci. Zvládá směrování, seskupování požadavků, ověřování, šablonování, háky, zpracování chyb a mnoho dalšího. Fiber je rozšiřitelný a můžete jej zrychlit pomocí vlastního kodéru a dekodéru.

Nainstalujte nejnovější verzi (v2) frameworku Fiber pomocí tohoto příkazu:

jít získejte github.com/gofiber/fiber/v2

Zde je návod, jak můžete nastavit jednoduchý koncový bod požadavku GET s rámcem Fiber.

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

funchlavní() {
aplikace := vláknina. Nový()

aplikace. Získejte("/ahoj", func(ctx *vlákno. Ctx)chyba {
vrátit se ctx. SendString("Ahoj")
})

log. Fatální (app. Poslouchat(":8080"))
}

The Nový metoda vrací novou instanci aplikace Fiber. The Dostat metoda je pro nastavení DOSTAT žádosti. V tomto případě je /hello endpoint vrací řetězec Ahoj.

Aplikaci nastavíte tak, aby naslouchala na portu localhost 8080 s Poslouchat metoda aplikace.

3. Rámec Iris

Iris je multiplatformní, efektivní, plnohodnotný a dobře navržený webový framework. Můžete jej použít k vytváření vysoce výkonných přenosných rozhraní API a webových aplikací v Go. Stejně jako Fiber, Iris is ExpressJS inspiruje některé designové vzory v Iris.

Pomocí Iris můžete rychle vytvářet aplikace bez serveru a nasazovat je na AWS, Netlify a mnoho dalších služeb. Balíček Iris obsahuje aplikaci CLI, kterou můžete použít pro živé načítání šablon Iris a sledování vaší aplikace.

Balíček Iris má funkce, které velmi usnadňují vývoj. Iris má API podobné Sinatře, které zajišťuje protokolování, směrování, relace a Websockets. Podporuje také funkce GRPC, podávání souborů, ověřování, autorizace a testování.

Spusťte tento příkaz v terminálu svého pracovního prostoru a nainstalujte rámec Iris do modulů Go.

jít získejte github.com/kataras/iris/v12@latest

Zde je návod, jak můžete nastavit a DOSTAT požadavek s rámcem Iris na spuštění na portu localhost 8080.

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

funchlavní() {
aplikace := duhovka. Nový() // nová instance Iris

aplikace. Handle("GET", "/ahoj", func(ctx duhovka. Kontext) {
_, chyba := ctx. JSON(duhovka. Mapa{"message": "ahoj"})

-li chyba!= nula {
vrátit se
}
})

chyba := aplikace. Běh (iris. Addr(":8080"), duhovka. WithoutServerError (iris. ErrServerClosed))

-li chyba!= nula {
vrátit se
}
}

The aplikace proměnná je instancí nové aplikace Iris. The DOSTAT handler vrátí zprávu JSON k požadavku na /hello trasa.

4. Beego Framework

Beego je snadno použitelný, inteligentní a vysoce výkonný rámec Go pro vytváření webových aplikací. Beego usnadňuje vytváření modulárních aplikací. Dodává se s vestavěným ORM (objektově-relační mapovač) a směrovačem spolu s funkcí šablonování.

Beego integruje funkce specifické pro Go s rozhraními a vkládáním struktur. Má skvělou strukturu API, optimalizovanou pro rychlost s podporou relace a nasazení a internalizací.

Beego je rozšířené a mnoho společností, od Opery po Huawei, Tencent a Weico, používá Beego ve výrobě.

Tento příkaz můžete použít k instalaci Beego Framework do vašeho projektu.

jít get -u github.com/beego/beego/v2

Zde je návod, jak můžete nastavit jednoduchý DOSTAT vyžádat koncový bod API s rámcem Beego.

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

typ ControllerInstance strukturovat {
web. Ovladač // vstupní bod pro aplikaci beego
}

func(řadič *ControllerInstance)Dostat() {
ovladač. Ctx. WriteString("ahoj světe")
}

funchlavní() {
web. Router("/hello", &ControllerInstance{}) // montáž pomocí beego
web. Běh() // spuštěná aplikace beego
}

The ControllerInstance struct je vstupním bodem aplikace Beego. The Dostat funkce handler obsahuje logiku pro a DOSTAT žádost na /hello koncový bod. Jako odpověď vrací řetězec „hello world“.

5. Rámec Revel

Hýřit září flexibilitou, kterou poskytuje pro vytváření webových aplikací. Můžete použít typově bezpečné směrování Revel, sestavovat ovladače a používat Go šablony s Revelem.

Revel poskytuje funkce pro směrování, snadné kódování a dekódování JSON a zpracování relací. Obsahuje také funkce pro zpracování mezipaměti, ladění a testování webových aplikací. Revel má balíček CLI pro vytváření CLI pro vaše aplikace. Pomocí funkce Revel můžete obsluhovat statické soubory a vytvářet chatovací aplikace pomocí funkce Websocket.

Nainstalujte framework Revel do adresáře projektu pomocí tohoto příkazu:

jít získat github.com/revel/revel

Nastavení aplikace Revel je snadné. Zde je jednoduchá manipulační funkce pro a DOSTAT požadovat koncový bod s rámcem Revel.

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

typ Modelka strukturovat { // jednoduchá struktura modelu
Zpráva tětiva`json:"zpráva"`
Popis tětiva`json:"popis"`
}

typ Aplikace strukturovat {
*hýřit. Ovladač // vstupní bod pro požadavky
}

func(aplikační aplikace)Ahoj()hýřit.Výsledek {
model := model{
Zpráva: "úspěch",
Popis: "Ahoj, světe",
}

aplikace. Odezva. ContentType = "application/json"
vrátit se aplikace. RenderJSON(model)
}

The Aplikace struct je vstupním bodem aplikace Revel. Vaše manipulátory implementují strukturu aplikace. Typ obsahu odpovědi je JSON a Ahoj funkce handler vrací zakódovanou strukturu JSON.

Dejte si pozor na rozdíl mezi routery a frameworky

V ekosystému Go najdete mnoho webových balíčků, z nichž většinu tvoří routery nebo frameworky. Směrovače jsou určeny pro příjem požadavků prostřednictvím protokolu HTTP.

Pro práci s routery budete potřebovat další balíčky. Stejně jako ty v tomto tutoriálu obsahuje většina frameworků vedle dalších funkcí vestavěné směrovače.