Tworzenie stron internetowych to jedna z wielu dziedzin, w których możesz korzystać z Go. Wiele firm i projektów używa Go na zapleczu swoich aplikacji internetowych, głównie ze względu na szybkość, łatwość obsługi i ekosystem pakietów.

The sieć/http Pakiet posiada większość funkcjonalności potrzebnych do budowania aplikacji webowych w Go. Możesz użyć innych pakietów z bogatej w funkcje biblioteki standardowej. The kodowanie pakiet obsługuje niskopoziomową konwersję danych, a html pakiet pozwala na interakcję ze stronami internetowymi.

Poza tym ekosystem pakietów innych firm Go zapewnia dodatkowe funkcje ułatwiające tworzenie stron internetowych.

1. Gin Framework

Gin to jeden z najpopularniejszych pakietów programistycznych Go. Gin to wysoce wydajna mikro-framework do tworzenia aplikacji internetowych i mikrousług w Go.

Gin jest szybki i zapewnia wbudowane funkcje renderowania, oprogramowania pośredniczącego i walidacji JSON. Oferuje łatwe zarządzanie błędami i rozszerzalność. Możesz dokumentować swoje aplikacje Gin ze specyfikacją OpenAPI3 i swaggerem.

instagram viewer

Gin oferuje interfejs API podobny do Martini, a projekt twierdzi, że jest czterdziestokrotnie szybszy. W przypadku mikrousług możesz ponownie wykorzystać modułowe komponenty Gin do opracowania potoków obsługi żądań.

Możesz zainstalować framework Gin za pomocą tego polecenia:

iść pobierz github.com/gin-gonic/gin

Oto jak skonfigurować prosty punkt końcowy żądania za pomocą frameworka Gin.

import (
„github.com/gin-gonic/gin”
"dziennik"
„sieć/http”
)

funkcjonowaćGłówny() {
router := gin. Domyślna()

router. POBIERZ("/witaj", funkcjonować(kontekst *gin. Kontekst) {
kontekst. JSON(http. Stan OK, gin. H{"success": "Udało się osiągnąć punkt końcowy"})
})

dziennik. Fatalln (http. SłuchajIObsługuj(:8080", zero))
}

Możesz utworzyć instancję routera za pomocą Domyślna metoda Gin pakiet. The DOSTAWAĆ Metoda dla żądań GET przyjmuje ścieżkę (punkt końcowy) i deklarację funkcji obsługi. Ta przykładowa funkcja zwraca a 200 Kod stanu HTTP do klienta i pomyślna odpowiedź JSON w treści odpowiedzi.

2. Ramy światłowodowe

Błonnik jest bezpieczny w pamięci, ExpressJS-jak framework zbudowany na niesamowicie szybkim szybkohttp pakiet. Oferuje doskonałą wydajność i jest przeznaczony dla początkujących i doświadczonych programistów backendu JavaScript.

Fiber oferuje większość funkcji, których będziesz potrzebować w ramach backendu. Obsługuje routing, grupowanie żądań, walidację, tworzenie szablonów, haki, obsługę błędów i wiele więcej. Fiber jest rozszerzalny i możesz go przyspieszyć, używając niestandardowego kodera i dekodera.

Zainstaluj najnowszą wersję (v2) platformy Fiber za pomocą tego polecenia:

iść pobierz github.com/gofiber/fiber/v2

Oto, jak skonfigurować prosty punkt końcowy żądania GET za pomocą struktury Fiber.

import „github.com/gofiber/fiber/v2”

funkcjonowaćGłówny() {
aplikacja := włókno. Nowy()

aplikacja. Pobierz("/witaj", funkcjonować(ctx *włókno. CTX)błąd {
zwrócić ctx. SendString("Witaj")
})

dziennik. Śmiertelny (ok. Słuchać(":8080"))
}

The Nowy Metoda zwraca nowe wystąpienie aplikacji Fiber. The Dostać metoda służy do zakładania DOSTAWAĆ upraszanie. W tym przypadku /hello punkt końcowy zwraca ciąg Witam.

Skonfigurowałeś aplikację do nasłuchiwania na porcie localhost portu 8080 z Słuchać metoda aplikacji.

3. Rama tęczówki

Iris to wieloplatformowa, wydajna, pełnoprawna, dobrze zaprojektowana platforma internetowa. Możesz go używać do tworzenia wydajnych, przenośnych interfejsów API i aplikacji internetowych w Go. Podobnie jak Fibre, Iris to ExpressJS inspiruje niektóre wzorce projektowe w Iris.

Dzięki Iris możesz szybko tworzyć aplikacje bezserwerowe i wdrażać je w AWS, Netlify i wielu innych usługach. Pakiet Iris zawiera aplikację CLI, której można używać do ponownego ładowania szablonów Iris i monitorowania aplikacji.

Pakiet Iris posiada funkcje, które sprawiają, że programowanie jest niezwykle łatwe. Iris ma interfejs API podobny do Sinatry, który obsługuje rejestrowanie, routing, sesje i gniazda sieciowe. Obsługuje również GRPC, obsługę plików, uwierzytelnianie, autoryzację i testowanie.

Uruchom to polecenie w terminalu swojego obszaru roboczego, aby zainstalować platformę Iris w modułach Go.

iść pobierz github.com/kataras/iris/v12@latest

Oto, jak możesz skonfigurować DOSTAWAĆ żądanie z frameworkiem Iris do uruchomienia na porcie localhost 8080.

import „github.com/kataras/iris/v12”

funkcjonowaćGłówny() {
aplikacja := tęczówka. Nowy() // nowa instancja Iris

aplikacja. Uchwyt("POBIERZ", "/witaj", funkcjonować(Tęczówka CTX. Kontekst) {
_, błąd := ctx. JSON(tęczówka. Mapa{"message": "witaj"})

jeśli błąd != zero {
zwrócić
}
})

błąd := aplikacja. Biegnij (tęczówka. Adres(:8080"), tęczówki. Bez błędu serwera (tęczówka. Błąd serweraZamknięty))

jeśli błąd != zero {
zwrócić
}
}

The aplikacja zmienna jest instancją nowej aplikacji Iris. The DOSTAWAĆ handler zwraca wiadomość JSON do żądania na /hello trasa.

4. Ramy Beego

Beego to łatwa w użyciu, inteligentna i wysoce wydajna platforma Go do tworzenia aplikacji internetowych. Beego sprawia, że ​​budowanie aplikacji modułowych jest proste. Jest wyposażony we wbudowany ORM (maper obiektowo-relacyjny) i router, a także funkcję tworzenia szablonów.

Beego integruje funkcje specyficzne dla Go z interfejsami i osadzaniem struktur. Ma świetną strukturę API, zoptymalizowaną pod kątem szybkości z obsługą sesji i wdrażania oraz internalizacją.

Beego jest szeroko rozpowszechniony, a wiele firm, od Opery po Huawei, Tencent i Weico, używa Beego w produkcji.

Możesz użyć tego polecenia, aby zainstalować Beego Framework w swoim projekcie.

iść pobierz -u github.com/beego/beego/v2

Oto jak możesz skonfigurować prosty DOSTAWAĆ żądanie punktu końcowego API z frameworkiem Beego.

import „github.com/beego/beego/v2/serwer/sieć”

rodzaj Instancja kontrolera struktura {
sieć. Kontroler // punkt wejścia do aplikacji beego
}

funkcjonować(kontroler *ControllerInstance)Dostać() {
kontroler. CTX. WriteString("Witaj świecie")
}

funkcjonowaćGłówny() {
sieć. Router("/hello", &ControllerInstance{}) // montaż z beego
sieć. Biegać() // uruchomienie aplikacji beego
}

The Instancja kontrolera struct jest punktem wejścia aplikacji Beego. The Dostać funkcja obsługi zawiera logikę dla a DOSTAWAĆ prośba do /hello punkt końcowy. W odpowiedzi zwraca ciąg „hello world”.

5. Ramy Revel

Biesiada wyróżnia się elastycznością, jaką zapewnia przy tworzeniu aplikacji internetowych. Możesz korzystać z bezpiecznego dla typów routingu Revel, kompilować kontrolery i używać Idź szablony z Revelem.

Revel zapewnia funkcje routingu, łatwego kodowania i dekodowania JSON oraz obsługi sesji. Zawiera również funkcje do obsługi pamięci podręcznej, debugowania i testowania aplikacji internetowych. Revel ma pakiet CLI do tworzenia CLI dla Twoich aplikacji. Możesz obsługiwać pliki statyczne za pomocą Revel i tworzyć aplikacje do czatu za pomocą funkcji Websocket.

Zainstaluj framework Revel w katalogu projektu za pomocą tego polecenia:

iść pobierz github.com/revel/revel

Skonfigurowanie aplikacji Revel jest łatwe. Oto prosta funkcja obsługi dla DOSTAWAĆ punkt końcowy żądania z platformą Revel.

import (
„github.com/revel/revel”
)

rodzaj Model struktura { // prosta struktura modelu
Wiadomość strunowy`json:"wiadomość"`
Opis strunowy`json:"opis"`
}

rodzaj Aplikacja struktura {
*biesiada. Kontroler // punkt wejścia dla próśb
}

funkcjonować(aplikacja)Witam()biesiada.Wynik {
model := Model{
Wiadomość: „sukces”,
Opis: „Witaj!, Świecie”,
}

aplikacja. Odpowiedź. ContentType = "aplikacja/json"
zwrócić aplikacja. RenderJSON(model)
}

The Aplikacja struct jest punktem wejścia aplikacji Revel. Twoje programy obsługi zaimplementują strukturę aplikacji. Typ treści odpowiedzi to JSON, a Witam funkcja obsługi zwraca zakodowaną strukturę JSON.

Uważaj na różnicę między routerami a platformami

W ekosystemie Go znajdziesz wiele pakietów internetowych, z których większość to routery lub frameworki. Routery służą do odbierania żądań za pośrednictwem protokołu HTTP.

Do pracy z routerami potrzebne będą dodatkowe pakiety. Podobnie jak w tym samouczku, większość frameworków zawiera wbudowane routery wraz z innymi funkcjami.