Уеб разработката е една от многото области, в които можете да използвате Go. Много компании и проекти използват Go в задната част на своите уеб приложения, главно заради неговата скорост, лекота на използване и пакетна екосистема.
The net/http има повечето от функционалностите, от които ще се нуждаете, за да създавате уеб приложения в Go. Можете да използвате други пакети от богатата на функции стандартна библиотека. The кодиране пакетът обработва преобразуване на данни на ниско ниво и html пакетът ви позволява да взаимодействате с уеб страници.
Освен това, екосистемата на Go от пакети на трети страни предоставя допълнителни функции за подпомагане на уеб разработката.
1. Gin Framework
Джин е един от най-популярните пакети за уеб разработка на Go. Gin е високопроизводителна микрорамка за изграждане на уеб приложения и микроуслуги в Go.
Gin е бърз и предоставя вградена функционалност за изобразяване, мидълуер и валидиране на JSON. Той може да се похвали с лесно управление на грешки и възможност за разширяване. Можете да документирате вашите Gin приложения със спецификацията на OpenAPI3 и размаха.
Gin разполага с API, подобен на Martini, и проектът твърди, че е четиридесет пъти по-бърз. За микроуслуги можете да използвате повторно модулните компоненти на Gin за разработване на тръбопроводи за обработка на заявки.
Можете да инсталирате рамката на Gin с тази команда:
отивам вземете github.com/gin-gonic/gin
Ето как да настроите проста крайна точка на заявка с Gin framework.
импортиране (
"github.com/gin-gonic/gin"
"дневник"
"net/http"
)функосновен() {
рутер := джин. По подразбиране()рутер. GET("/здравей", функ(контекст *gin. контекст) {
контекст. JSON(http. СтатусОК, джин. H{"success": "Успешно достигане на крайната точка"})
})
дневник. Fatalln (http. ListenAndServe(":8080", нула))
}
Можете да създадете екземпляр на рутер с По подразбиране метод на джин пакет. The ВЗЕМЕТЕ методът за GET заявки приема пътя (крайна точка) и декларация на манипулираща функция. Тази примерна функция връща a 200 HTTP код на състоянието към клиента и успешен JSON отговор в тялото на отговора.
2. Fiber Framework
Фибри е безопасен за паметта, Подобно на ExpressJS рамка, изградена върху светкавично бързата бързоhttp пакет. Той предлага страхотна производителност и е насочен към начинаещи и опитни Javascript бекенд разработчици.
Fiber разполага с повечето от функционалностите, от които ще се нуждаете в бекенд рамка. Той обработва маршрутизиране, групиране на заявки, валидиране, шаблони, кукички, обработка на грешки и много други. Fiber е разширяем и можете да направите Fiber по-бърз с помощта на персонализиран енкодер и декодер.
Инсталирайте най-новата версия (v2) на Fiber framework с тази команда:
отивам вземете github.com/gofiber/fiber/v2
Ето как можете да настроите проста крайна точка на GET заявка с рамката Fiber.
импортиране "github.com/gofiber/fiber/v2"
функосновен() {
приложение := фибри. ново()ап. Get("/здравей", функ(ctx *влакно. Ctx)грешка {
връщане ctx. SendString("Здравей")
})
дневник. Фатално (прил. Слушам(":8080"))
}
The Нов метод връща нов екземпляр на приложение Fiber. The Вземете методът е за настройка ВЗЕМЕТЕ заявки. В този случай, /hello endpoint връща низа Здравейте.
Вие настройвате приложението да слуша на port localhost port 8080 с Слушам метод на приложението.
3. Рамката на Iris
Iris е мултиплатформена, ефективна, пълноценна, добре проектирана уеб рамка. Можете да го използвате за изграждане на високопроизводителни, преносими API и уеб приложения в Go. Подобно на Fiber, Iris е ExpressJS вдъхновява някои от дизайнерските модели в Iris.
Можете бързо да създавате приложения без сървър с Iris и да ги внедрявате в AWS, Netlify и много други услуги. Пакетът Iris има CLI приложение, което можете да използвате за презареждане на живо на шаблони на Iris и наблюдение на вашето приложение.
Пакетът Iris има функции, които правят разработката изключително лесна. Iris има подобен на Sinatra API, който се грижи за регистриране, маршрутизиране, сесии и уеб сокети. Той също така поддържа GRPC, обслужване на файлове, удостоверяване, оторизация и функционалност за тестване.
Изпълнете тази команда в терминала на вашето работно пространство, за да инсталирате рамката Iris към вашите Go модули.
отивам вземете github.com/kataras/iris/v12@lastest
Ето как можете да настроите a ВЗЕМЕТЕ заявка с рамката на Iris за изпълнение на локален хост порт 8080.
импортиране "github.com/kataras/iris/v12"
функосновен() {
приложение := ирис. ново() // нов екземпляр на Irisап. Handle("GET", "/здравей", функ(ctx ирис. контекст) {
_, грешка := ctx. JSON(ирис. Карта {"message": "hello"})ако грешка!= нула {
връщане
}
})грешка := приложение. Бягай (ирис. Addr(":8080"), Ирис. WithoutServerError (ирис. ErrServerClosed))
ако грешка!= нула {
връщане
}
}
The ап променливата е екземплярът на ново приложение Iris. The ВЗЕМЕТЕ манипулаторът връща JSON съобщение за заявка на /hello маршрут.
4. Рамката Beego
Beego е лесна за използване, интелигентна и високопроизводителна Go рамка за изграждане на уеб приложения. Beego прави изграждането на модулни приложения лесно. Той идва с вграден ORM (обектно-релационен картограф) и рутер, заедно с функционалност за шаблони.
Beego интегрира специфични за Go възможности с интерфейси и вграждане на структури. Той има страхотна API структура, оптимизирана за скорост с поддръжка на сесия и внедряване и интернализация.
Beego е широко разпространено и много компании, от Opera до Huawei, Tencent и Weico, използват Beego в производството.
Можете да използвате тази команда, за да инсталирате Beego Framework във вашия проект.
отивам get -u github.com/beego/beego/v2
Ето как можете да настроите прост ВЗЕМЕТЕ поискайте крайна точка на API с рамката на Beego.
импортиране "github.com/beego/beego/v2/server/web"
Тип ControllerInstance структура {
уеб. Контролер // входна точка за приложението beego
}функ(контролер *ControllerInstance)Вземете() {
контролер. Ctx. WriteString("здравей свят")
}
функосновен() {
уеб. Рутер("/hello", &ControllerInstance{}) // монтиране с beego
уеб. Изпълни() // изпълнява приложение beego
}
The ControllerInstance struct е входната точка на приложението Beego. The Вземете функцията за обработка съдържа логиката за a ВЗЕМЕТЕ молба към /hello крайна точка. Той връща низа „здравей свят“ като отговор.
5. Рамката Revel
Revel блести с гъвкавостта, която предоставя за изграждане на уеб приложения. Можете да използвате безопасното за тип маршрутизиране на Revel, да създавате контролери и да използвате Go шаблони с Revel.
Revel предоставя функционалност за маршрутизиране, лесно JSON кодиране и декодиране и обработка на сесии. Той също така включва функции за работа с кеширане, отстраняване на грешки и тестване на уеб приложения. Revel има CLI пакет за изграждане на CLI за вашите приложения. Можете да обслужвате статични файлове с Revel и да създавате приложения за чат с неговата функционалност Websocket.
Инсталирайте рамката Revel в директорията на вашия проект с тази команда:
отивам вземете github.com/revel/revel
Лесно е да настроите приложение Revel. Ето една проста манипулираща функция за a ВЗЕМЕТЕ заявете крайна точка с рамката Revel.
импортиране (
"github.com/revel/revel"
)Тип Модел структура { // проста структура на модела
Съобщение низ`json:"съобщение"`
Описание низ`json:"описание"`
}Тип Приложение структура {
* веселба. Контролер // входна точка за заявките
}функ(приложение Приложение)Здравейте()веселя се.Резултат {
модел := модел{
Съобщение: "успех",
Описание: "Hello!, World",
}
ап. Отговор. ContentType = "приложение/json"
връщане ап. RenderJSON(модел)
}
The Приложение struct е входната точка на приложението Revel. Вашите манипулатори ще внедрят структурата на приложението. Типът съдържание на отговора е JSON, а Здравейте функцията за обработка връща кодирана JSON структура.
Внимавайте за разликата между рутери и рамки
Ще намерите много уеб пакети в екосистемата Go, повечето от които са рутери или рамки. Рутерите са за получаване на заявки през HTTP протокола.
Ще ви трябват допълнителни пакети за работа с рутери. Подобно на тези в този урок, повечето рамки включват вградени рутери заедно с друга функционалност.