Веб развој је једно од многих области у којима можете да користите Го. Многе компаније и пројекти користе Го на позадини својих веб апликација, углавном због његове брзине, лакоће коришћења и екосистема пакета.
Тхе нет/хттп пакет има већину функционалности које су вам потребне за прављење веб апликација у Го. Можете користити друге пакете из стандардне библиотеке богате функцијама. Тхе кодирање пакет управља конверзијом података ниског нивоа и хтмл пакет вам омогућава интеракцију са веб страницама.
Осим тога, Го-ов екосистем пакета трећих страна пружа додатне функције за помоћ у развоју веба.
1. Тхе Гин Фрамеворк
Џин је један од Го-ових најпопуларнијих пакета за веб развој. Гин је микро-оквир високих перформанси за прављење веб апликација и микросервиса у Го-у.
Гин је брз и пружа уграђено рендеровање, међуверски софтвер и функционалност ЈСОН валидације. Може се похвалити лаком управљањем грешкама и проширивости. Можете документовати своје Гин апликације помоћу ОпенАПИ3 спецификације и разметања.
Гин има АПИ сличан Мартинију, а пројекат тврди да је четрдесет пута бржи. За микросервисе, можете поново користити Гин модуларне компоненте да бисте развили цевоводе за обраду захтева.
Можете инсталирати Гин оквир са овом командом:
иди набавите гитхуб.цом/гин-гониц/гин
Ево како да подесите једноставну крајњу тачку захтева са Гин оквиром.
увоз (
"гитхуб.цом/гин-гониц/гин"
"Пријава"
"нет/хттп"
)фунцглавни() {
рутер := гин. Уобичајено()рутер. ГЕТ("/здраво", фунц(контекст *гин. Контекст) {
контекст. ЈСОН(хттп. Статус ОК, џин. Х{"суццесс": "Успешно погодио крајњу тачку"})
})
Пријава. Фаталн (хттп. ЛистенАндСерве(":8080", нула))
}
Можете креирати инстанцу рутера са Уобичајено методом џин пакет. Тхе ДОБИТИ метода за ГЕТ захтеве узима путању (крајњу тачку) и декларацију функције руковаоца. Овај пример функције враћа а 200 ХТТП статусни код клијенту и успешан ЈСОН одговор у телу одговора.
2. Фибер Фрамеворк
Влакно је безбедно за меморију, ЕкпрессЈС-лике оквир изграђен на пламено брзо фастхттп пакет. Нуди одличне перформансе и циља на почетнике и искусне Јавасцрипт бацкенд програмере.
Фибер садржи већину функционалности које ће вам требати у позадинском оквиру. Он се бави рутирањем, груписањем захтева, валидацијом, шаблонирањем, кукицама, руковањем грешкама и још много тога. Фибер се може проширити, а Ви можете да убрзате Фибер користећи прилагођени кодер и декодер.
Инсталирајте најновију верзију (в2) оквира Фибер помоћу ове команде:
иди набавите гитхуб.цом/гофибер/фибер/в2
Ево како можете да подесите једноставну крајњу тачку ГЕТ захтева са оквиром Фибер.
увоз "гитхуб.цом/гофибер/фибер/в2"
фунцглавни() {
апликација := влакно. Нова()апликација. Гет("/здраво", фунц(цтк *влакна. цтк)грешка {
повратак цтк. СендСтринг("Здраво")
})
Пријава. Фатално (апп. Слушај (":8080"))
}
Тхе Нова метода враћа нову инстанцу апликације Фибер. Тхе Добити метод је за постављање ДОБИТИ захтева. У овом случају, /hello крајња тачка враћа стринг Здраво.
Подесите апликацију да слуша на порту локалног хоста 8080 са Слушај метод апликације.
3. Тхе Ирис Фрамеворк
Ирис је вишеплатформски, ефикасан, пуноправан, добро дизајниран веб оквир. Можете да га користите за прављење преносивих АПИ-ја и веб апликација високих перформанси у Го. Као и Фибер, Ирис је ЕкпрессЈС инспирише неке од образаца дизајна у Ирис-у.
Можете брзо да направите апликације без сервера помоћу Ирис-а и да их примените на АВС, Нетлифи и многе друге услуге. Пакет Ирис има ЦЛИ апликацију коју можете да користите за поновно учитавање Ирис шаблона уживо и надгледање ваше апликације.
Пакет Ирис има карактеристике које чине развој изузетно лаким. Ирис има АПИ сличан Синатри који служи за евидентирање, рутирање, сесије и веб-сокете. Такође подржава ГРПЦ, послуживање датотека, аутентификацију, ауторизацију и функционалност тестирања.
Покрените ову команду у терминалу свог радног простора да бисте инсталирали Ирис оквир на своје Го модуле.
иди набавите гитхуб.цом/катарас/ирис/в12@ластест
Ево како можете да подесите а ДОБИТИ захтев са Ирис оквиром за покретање на порту локалног хоста 8080.
увоз "гитхуб.цом/катарас/ирис/в12"
фунцглавни() {
апп := ирис. Нова() // нова инстанца Ирисаапликација. Хандле("ГЕТ", "/здраво", фунц(цтк ирис. Контекст) {
_, грешка := цтк. ЈСОН(ирис. Мапа{"мессаге": "здраво"})ако ерр != нула {
повратак
}
})ерр := апп. Трчи (ирис. Адр(":8080"), Дужица. ВитхоутСерверЕррор (ирис. ЕррСерверЦлосед))
ако ерр != нула {
повратак
}
}
Тхе апликација променљива је инстанца нове апликације Ирис. Тхе ДОБИТИ обрађивач враћа ЈСОН поруку коју захтева на /hello рута.
4. Беего оквир
Беего је једноставан за коришћење, интелигентан и Го оквир високих перформанси за прављење веб апликација. Беего чини изградњу модуларних апликација једноставном. Долази са уграђеним ОРМ-ом (објектно-релациони мапер) и рутером, уз функционалност шаблона.
Беего интегрише Го-специфичне могућности са интерфејсима и уграђивањем структура. Има одличну структуру АПИ-ја, оптимизовану за брзину са подршком за сесије и примену и интернализацијом.
Беего је широко распрострањен и многе компаније, од Опере до Хуавеја, Тенцента и Веицо-а, користе Беего у производњи.
Ову команду можете користити да инсталирате Беего Фрамеворк у свој пројекат.
иди гет -у гитхуб.цом/беего/беего/в2
Ево како можете да подесите једноставно ДОБИТИ захтевајте АПИ крајњу тачку са Беего оквиром.
увоз "гитхуб.цом/беего/беего/в2/сервер/веб"
тип ЦонтроллерИнстанце струцт {
веб. Контролор // улазна тачка за беего апликацију
}фунц(контролер *ЦонтроллерИнстанце)Добити() {
контролор. Цтк. ВритеСтринг("здраво свет")
}
фунцглавни() {
веб. Рутер("/хелло", &ЦонтроллерИнстанце{}) // монтажа са беего
веб. Трцати() // покретање беего апликације
}
Тхе ЦонтроллерИнстанце струцт је улазна тачка апликације Беего. Тхе Добити функција руковаоца садржи логику за а ДОБИТИ захтев за /hello крајња тачка. Као одговор враћа стринг „здраво свет“.
5. Оквир Ревел
Ревел блиста због флексибилности коју пружа за прављење веб апликација. Можете користити Ревел-ово рутирање безбедно за типове, правити контролере и користити Иди на шаблоне са Ревелом.
Ревел пружа функционалност за рутирање, једноставно ЈСОН кодирање и декодирање и руковање сесијом. Такође укључује функције за руковање кеширањем, отклањањем грешака и тестирањем веб апликација. Ревел има ЦЛИ пакет за прављење ЦЛИ-ова за ваше апликације. Можете служити статичне датотеке са Ревел-ом и правити апликације за ћаскање са његовом Вебсоцкет функцијом.
Инсталирајте Ревел фрамеворк у свој пројектни директориј помоћу ове команде:
иди набавите гитхуб.цом/ревел/ревел
Лако је поставити апликацију Ревел. Ево једноставне функције руковања за а ДОБИТИ захтевајте крајњу тачку са Ревеловим оквиром.
увоз (
"гитхуб.цом/ревел/ревел"
)тип Модел струцт { // једноставна структура модела
Порука низ`јсон:"порука"`
Опис низ`јсон:"опис"`
}тип Апликација струцт {
*ревел. Контролор // улазна тачка за захтеве
}фунц(апликација апликација)Здраво()ревел.Резултат {
модел := Модел{
Порука: "успех",
Опис: "Здраво! Свете",
}
апликација. Одговор. ЦонтентТипе = "апплицатион/јсон"
повратак апликација. РендерЈСОН(модел)
}
Тхе Апликација струцт је улазна тачка апликације Ревел. Ваши руковаоци ће имплементирати структуру апликације. Тип садржаја одговора је ЈСОН, а Здраво функција руковаоца враћа кодирану ЈСОН структуру.
Пазите на разлику између рутера и оквира
Наћи ћете многе веб пакете у Го екосистему, од којих су већина рутери или оквири. Рутери су за пријем захтева преко ХТТП протокола.
Биће вам потребни додатни пакети за рад са рутерима. Као и они у овом водичу, већина оквира укључује уграђене рутере заједно са другим функцијама.