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.
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 Irisaplikacja. 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.