Web geliştirme, Go'yu kullanabileceğiniz birçok alandan biridir. Birçok şirket ve proje, Go on web uygulamalarının arka ucunda, esas olarak hızı, kullanım kolaylığı ve paket ekosistemi için kullanır.

bu net/http paketi, Go'da web uygulamaları oluşturmak için ihtiyaç duyacağınız işlevlerin çoğuna sahiptir. Zengin özelliklere sahip standart kitaplıktan diğer paketleri kullanabilirsiniz. bu kodlama paket, düşük seviyeli veri dönüştürmeyi işler ve html paketi, web sayfalarıyla etkileşime girmenizi sağlar.

Bunun ötesinde, Go'nun üçüncü taraf paket ekosistemi, web geliştirmeye yardımcı olmak için ekstra özellikler sağlar.

1. Cin Çerçevesi

Cin Go'nun en popüler web geliştirme paketlerinden biridir. Gin, Go'da web uygulamaları ve mikro hizmetler oluşturmak için yüksek performanslı bir mikro çerçevedir.

Gin hızlıdır ve yerleşik işleme, ara katman yazılımı ve JSON doğrulama işlevi sağlar. Kolay hata yönetimi ve genişletilebilirliğe sahiptir. Gin uygulamalarınızı OpenAPI3 spesifikasyonu ve swagger ile belgeleyebilirsiniz.

instagram viewer

Gin, Martini benzeri bir API'ye sahiptir ve proje kırk kat daha hızlı olduğunu iddia etmektedir. Mikro hizmetler için, istek işleme ardışık düzenleri geliştirmek için Gin'in modüler bileşenlerini yeniden kullanabilirsiniz.

Gin çerçevesini şu komutla yükleyebilirsiniz:

Git github.com/gin-gonic/gin'i edinin

Gin çerçevesiyle basit bir istek uç noktasının nasıl kurulacağı aşağıda açıklanmıştır.

içe aktarmak (
"github.com/gin-gonic/gin"
"kayıt"
"net/http"
)

işlevana() {
yönlendirici := cin. Varsayılan()

yönlendirici. GET("/merhaba", işlev(bağlam * cin. Bağlam) {
bağlam. JSON(http. DurumTamam, cin. H{"success": "Bitiş noktasına başarıyla ulaştı"})
})

kayıt. Fatalln (http. ListenAndServe(":8080", sıfır))
}

ile bir yönlendirici örneği oluşturabilirsiniz. Varsayılan yöntemi cin paket. bu ALMAK GET istekleri için yöntem, yolu (bitiş noktası) ve bir işleyici işlevi bildirimini alır. Bu örnek işlev, bir 200 HTTP durum kodu istemciye ve yanıt gövdesinde başarılı bir JSON yanıtı.

2. Fiber Çerçeve

Lif bellek güvenlidir, ExpressJS benzeri cayır cayır yanan hızlı üzerine inşa edilmiş çerçeve hızlıhttp paket. Harika performans sunar ve yeni başlayanları ve deneyimli Javascript arka uç geliştiricilerini hedefler.

Fiber, bir arka uç çerçevesinde ihtiyaç duyacağınız işlevlerin çoğuna sahiptir. Yönlendirme, istek gruplandırma, doğrulama, şablon oluşturma, kancalar, hata işleme ve çok daha fazlasını yönetir. Fiber genişletilebilir ve özel bir kodlayıcı ve kod çözücü kullanarak Fiber'i daha hızlı hale getirebilirsiniz.

Bu komutla Fiber çerçevesinin en son sürümünü (v2) yükleyin:

Git github.com/gofiber/fiber/v2'yi edinin

Fiber çerçevesiyle basit bir GET isteği uç noktasını nasıl kurabileceğiniz aşağıda açıklanmıştır.

içe aktarmak "github.com/gofiber/fiber/v2"

işlevana() {
uygulama := fiber. Yeni()

uygulama. Get("/merhaba", işlev(ctx *fiber. ctx)hata {
dönüş ctx. SendString("Merhaba")
})

kayıt. Ölümcül (app. Dinlemek(":8080"))
}

bu Yeni yöntem, bir Fiber uygulamasının yeni bir örneğini döndürür. bu Almak yöntem kurmak içindir ALMAK istekler. Bu durumda, /hello uç nokta dizeyi döndürür Merhaba.

Uygulamayı, bağlantı noktası localhost bağlantı noktasını dinleyecek şekilde ayarladınız 8080 ile Dinlemek uygulamanın yöntemi.

3. İris Çerçevesi

Iris, platformlar arası, verimli, tam teşekküllü, iyi tasarlanmış bir web çerçevesidir. Go'da yüksek performanslı, taşınabilir API'ler ve web uygulamaları oluşturmak için kullanabilirsiniz. Fiber gibi, Iris is ExpressJS, Iris'teki bazı tasarım modellerine ilham verir.

Iris ile sunucusuz uygulamaları hızla oluşturabilir ve bunları AWS, Netlify ve diğer birçok hizmette dağıtabilirsiniz. Iris paketinde, Iris şablonlarını canlı olarak yeniden yüklemek ve uygulamanızı izlemek için kullanabileceğiniz bir CLI uygulaması bulunur.

Iris paketi, geliştirmeyi son derece kolaylaştıran özelliklere sahiptir. Iris, günlüğe kaydetme, yönlendirme, oturumlar ve Web yuvaları için hizmet veren Sinatra benzeri bir API'ye sahiptir. Ayrıca GRPC, dosya sunumu, kimlik doğrulama, yetkilendirme ve test işlevlerini de destekler.

Iris çerçevesini Go modüllerinize kurmak için bu komutu çalışma alanınızın terminalinde çalıştırın.

Git github.com/kataras/iris/v12@lastest'i edinin

İşte nasıl kurabileceğiniz ALMAK localhost bağlantı noktasında çalıştırmak için Iris çerçevesiyle istek 8080.

içe aktarmak "github.com/kataras/iris/v12"

işlevana() {
uygulama := iris. Yeni() // yeni İris örneği

uygulama. Handle("GET", "/merhaba", işlev(ctx iris. Bağlam) {
_, hata := ctx. JSON (iris. Harita{"mesaj": "merhaba"})

eğer hata != sıfır {
dönüş
}
})

hata := uygulama. Çalıştır (iris. Adres(":8080"), iris. OlmadanSunucu Hatası (iris. ErrServerKapalı))

eğer hata != sıfır {
dönüş
}
}

bu uygulama değişken, yeni bir Iris uygulamasının örneğidir. bu ALMAK işleyici, istekte bulunmak için bir JSON mesajı döndürür. /hello güzergah.

4. Beego Çerçevesi

beego web uygulamaları oluşturmak için kullanımı kolay, akıllı ve yüksek performanslı bir Go çerçevesidir. Beego, modüler uygulamalar oluşturmayı kolaylaştırır. Şablon oluşturma işlevinin yanı sıra yerleşik bir ORM (nesne-ilişkisel eşleyici) ve yönlendirici ile birlikte gelir.

Beego, Go'ya özgü yetenekleri arayüzler ve yapı gömme ile bütünleştirir. Oturum ve dağıtım desteği ve içselleştirme ile hız için optimize edilmiş harika bir API yapısına sahiptir.

Beego yaygın ve Opera'dan Huawei, Tencent ve Weico'ya kadar birçok şirket üretimde Beego'yu kullanıyor.

Beego Framework'ü projenize kurmak için bu komutu kullanabilirsiniz.

Git -u github.com/beego/beego/v2 olsun

İşte basit bir şekilde nasıl kurabileceğiniz ALMAK Beego çerçevesiyle API uç noktası isteyin.

içe aktarmak "github.com/beego/beego/v2/server/web"

tip Denetleyici Örneği yapı {
ağ. Denetleyici // beego uygulaması için giriş noktası
}

işlev(denetleyici *ControllerInstance)Almak() {
kontrolör. ctx. WriteString("merhaba dünya")
}

işlevana() {
ağ. Yönlendirici("/merhaba", &ControllerInstance{}) // beego ile montaj
ağ. Koşmak() // beego uygulamasını çalıştırıyor
}

bu Denetleyici Örneği struct, Beego uygulamasının giriş noktasıdır. bu Almak işleyici işlevi, bir ALMAK talep etmek /hello uç nokta. Yanıt olarak "merhaba dünya" dizesini döndürür.

5. Revel Çerçevesi

Cümbüş web uygulamaları oluşturmak için sağladığı esneklik için parlıyor. Revel'in güvenli tip yönlendirmesini kullanabilir, denetleyiciler oluşturabilir ve Şablonlara git Revel ile.

Revel, yönlendirme, kolay JSON kodlama ve kod çözme ve oturum işleme için işlevsellik sağlar. Ayrıca web uygulamalarının önbelleğe alınmasını, hata ayıklamasını ve test edilmesini sağlayan işlevleri de içerir. Revel, uygulamalarınız için CLI'ler oluşturmak için bir CLI paketine sahiptir. Revel ile statik dosyalar sunabilir ve Websocket işleviyle sohbet uygulamaları oluşturabilirsiniz.

Bu komutla Revel çerçevesini proje dizininize kurun:

Git github.com/revel/revel'i edinin

Bir Revel uygulaması kurmak kolaydır. İşte bir için basit bir işleyici işlevi ALMAK Revel çerçevesiyle uç nokta isteyin.

içe aktarmak (
"github.com/revel/revel"
)

tip modeli yapı { // basit model yapısı
İleti sicim`json:"mesaj"`
Tanım sicim`json:"açıklama"`
}

tip Uygulama yapı {
*cümbüş. Denetleyici // istekler için giriş noktası
}

işlev(uygulama Uygulaması)Merhaba()cümbüş.Sonuç {
model := Model{
Mesaj: "başarı",
Açıklama: "Merhaba!, Dünya",
}

uygulama. Tepki. ContentType = "uygulama/json"
dönüş uygulama. RenderJSON(model)
}

bu Uygulama struct, Revel uygulamasının giriş noktasıdır. İşleyicileriniz uygulama yapısını uygulayacaktır. Yanıt içerik türü JSON'dur ve Merhaba işleyici işlevi, kodlanmış bir JSON yapısı döndürür.

Yönlendiriciler ve Çerçeveler Arasındaki Farka Dikkat Edin

Go ekosisteminde çoğu yönlendirici veya çerçeve olan birçok web paketi bulacaksınız. Yönlendiriciler, HTTP protokolü aracılığıyla istekleri almak içindir.

Yönlendiricilerle çalışmak için ek paketlere ihtiyacınız olacak. Bu öğreticidekiler gibi çoğu çerçeve, diğer işlevlerin yanı sıra yerleşik yönlendiriciler içerir.