5 Go Frameworks untuk Aplikasi Web Anda Berikutnya

Pengembangan web adalah salah satu dari banyak bidang di mana Anda dapat menggunakan Go. Banyak perusahaan dan proyek menggunakan Go di bagian belakang aplikasi web mereka, terutama karena kecepatan, kemudahan penggunaan, dan ekosistem paketnya.

Itu bersih/http package memiliki sebagian besar fungsi yang Anda perlukan untuk membangun aplikasi web di Go. Anda dapat menggunakan paket lain dari pustaka standar yang kaya fitur. Itu pengkodean paket menangani konversi data tingkat rendah dan html package memungkinkan Anda berinteraksi dengan halaman web.

Selain itu, ekosistem paket pihak ketiga Go menyediakan fitur tambahan untuk membantu pengembangan web.

1. Kerangka Gin

Gin adalah salah satu paket pengembangan web Go yang paling populer. Gin adalah kerangka kerja mikro berkinerja tinggi untuk membangun aplikasi web dan layanan mikro di Go.

Gin cepat dan menyediakan fungsionalitas rendering, middleware, dan validasi JSON bawaan. Ini menawarkan manajemen kesalahan yang mudah dan kemampuan diperpanjang. Anda dapat mendokumentasikan aplikasi Gin Anda dengan spesifikasi dan kesombongan OpenAPI3.

Gin memiliki API mirip Martini, dan proyek ini mengklaim empat puluh kali lebih cepat. Untuk layanan mikro, Anda dapat menggunakan kembali komponen modular Gin untuk mengembangkan pipeline penanganan permintaan.

Anda dapat menginstal kerangka kerja Gin dengan perintah ini:

go get github.com/gin-gonic/gin

Berikut cara menyiapkan titik akhir permintaan sederhana dengan kerangka kerja Gin.

import (
"github.com/gin-gonic/gin"
"log"
"net/http"
)

func main() {
router := gin.Default()

router.GET("/hello", func(context *gin.Context) {
context.JSON(http.StatusOK, gin.H{"success": "Successfully hit the endpoint"})
})

log.Fatalln(http.ListenAndServe(":8080", nil))
}

Anda dapat membuat instance router dengan Bawaan metode gin kemasan. Itu DAPATKAN metode untuk permintaan GET mengambil jalur (titik akhir) dan deklarasi fungsi handler. Contoh fungsi ini mengembalikan a 200 Kode status HTTP ke klien dan respons JSON yang berhasil di badan respons.

See also  Pelajari Cara Membuat Pemeriksa Status Situs Web dengan Python


2. Kerangka Serat

Fiber adalah kerangka kerja yang aman dari memori, seperti ExpressJS yang dibangun dengan sangat cepat cepathttp kemasan. Ini menawarkan kinerja hebat dan menargetkan pemula dan pengembang backend Javascript berpengalaman.

Fiber menampilkan sebagian besar fungsi yang Anda perlukan dalam kerangka kerja backend. Ini menangani perutean, pengelompokan permintaan, validasi, templating, kait, penanganan kesalahan, dan banyak lagi. Fiber dapat diperpanjang, dan Anda dapat membuat Fiber lebih cepat menggunakan encoder dan decoder khusus.

Instal versi terbaru (v2) dari kerangka Fibre dengan perintah ini:

go get github.com/gofiber/fiber/v2

Inilah cara Anda dapat menyiapkan titik akhir permintaan GET sederhana dengan kerangka kerja Fibre.

import "github.com/gofiber/fiber/v2"

func main() {
app := fiber.New()

app.Get("/hello", func(ctx *fiber.Ctx) error {
return ctx.SendString("Hello")
})

log.Fatal(app.Listen(":8080"))
}

Itu Baru metode mengembalikan instance baru dari aplikasi Fiber. Itu Mendapatkan metode adalah untuk mengatur DAPATKAN permintaan. Dalam hal ini, /halo titik akhir mengembalikan string Halo.

Anda mengatur aplikasi untuk mendengarkan di port localhost port 8080 dengan Mendengarkan metode aplikasi.

3. Kerangka Iris

Iris adalah kerangka kerja web lintas platform, efisien, lengkap, dan dirancang dengan baik. Anda dapat menggunakannya untuk membuat API portabel dan aplikasi web berperforma tinggi di Go. Seperti Fiber, Iris adalah ExpressJS yang menginspirasi beberapa pola desain di Iris.

Anda dapat membangun aplikasi tanpa server dengan cepat dengan Iris dan menerapkannya di AWS, Netlify, dan banyak layanan lainnya. Paket Iris memiliki aplikasi CLI yang dapat Anda gunakan untuk memuat ulang template Iris secara langsung dan memantau aplikasi Anda.

Paket Iris memiliki fitur yang membuat pengembangan menjadi sangat mudah. Iris memiliki API mirip Sinatra yang melayani logging, routing, session, dan Websockets. Ini juga mendukung GRPC, penyajian file, otentikasi, otorisasi, dan fungsionalitas pengujian.

See also  Cara Memfilter Hasil Pencarian Saat Mengetik Dengan React

Jalankan perintah ini di terminal ruang kerja Anda untuk menginstal kerangka kerja Iris ke modul Go Anda.

go get github.com/kataras/iris/[email protected]

Inilah cara Anda dapat mengatur DAPATKAN permintaan dengan kerangka kerja Iris untuk dijalankan di port localhost 8080.

import "github.com/kataras/iris/v12"

func main() {
app := iris.New()

app.Handle("GET", "/hello", func(ctx iris.Context) {
_, err := ctx.JSON(iris.Map{"message": "hello"})

if err != nil {
return
}
})

err := app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))

if err != nil {
return
}
}

Itu aplikasi variabel adalah instance dari aplikasi Iris baru. Itu DAPATKAN handler mengembalikan pesan JSON untuk diminta pada /halo rute.

4. Kerangka Beego

Beego adalah framework Go yang mudah digunakan, cerdas, dan berperforma tinggi untuk membangun aplikasi web. Beego membuat pembuatan aplikasi modular menjadi mudah. Muncul dengan built-in ORM (object-relational mapper) dan router, di samping fungsi template.

Beego mengintegrasikan kemampuan khusus Go dengan antarmuka dan penyematan struct. Ini memiliki struktur API yang hebat, dioptimalkan untuk kecepatan dengan dukungan dan internalisasi sesi dan penerapan.

Beego tersebar luas, dan banyak perusahaan, dari Opera hingga Huawei, Tencent, dan Weico, menggunakan Beego dalam produksi.

Anda dapat menggunakan perintah ini untuk menginstal Beego Framework di proyek Anda.

go get -u github.com/beego/beego/v2

Inilah cara Anda dapat mengatur yang sederhana DAPATKAN meminta titik akhir API dengan kerangka kerja Beego.

import "github.com/beego/beego/v2/server/web"

type ControllerInstance struct {
web.Controller
}

func (controller *ControllerInstance) Get() {
controller.Ctx.WriteString("hello world")
}

func main() {
web.Router("/hello", &ControllerInstance{})
web.Run()
}

Itu Instance Pengontrol struct adalah titik masuk aplikasi Beego. Itu Mendapatkan fungsi handler berisi logika untuk a DAPATKAN permintaan ke /halo titik akhir. Ini mengembalikan string “hello world” sebagai respons.

See also  Cara Membuat Foto Dari Ponsel Samsung Anda Terlihat Kurang Diproses

5. Kerangka Revel

Revel bersinar karena fleksibilitas yang diberikannya untuk membangun aplikasi web. Anda dapat menggunakan perutean aman jenis Revel, membuat pengontrol, dan menggunakan templat Go dengan Revel.

Revel menyediakan fungsionalitas untuk perutean, penyandian dan penguraian kode JSON yang mudah, dan penanganan sesi. Ini juga mencakup fungsi untuk menangani caching, debugging, dan pengujian aplikasi web. Revel memiliki paket CLI untuk membangun CLI untuk aplikasi Anda. Anda dapat menyajikan file statis dengan Revel dan membangun aplikasi obrolan dengan fungsionalitas Websocket-nya.

Instal kerangka kerja Revel di direktori proyek Anda dengan perintah ini:


go get github.com/revel/revel

Sangat mudah untuk mengatur aplikasi Revel. Berikut adalah fungsi handler sederhana untuk a DAPATKAN meminta titik akhir dengan kerangka Revel.

import (
"github.com/revel/revel"
)

type Model struct {
Message string `json:"message"`
Description string `json:"description"`
}

type App struct {
*revel.Controller
}

func (app App) Hello() revel.Result {
model := Model{
Message: "success",
Description: "Hello!, World",
}

app.Response.ContentType = "application/json"
return app.RenderJSON(model)
}

Itu Aplikasi struct adalah titik masuk aplikasi Revel. Penangan Anda akan mengimplementasikan struct aplikasi. Jenis konten respons adalah JSON, dan Halo fungsi handler mengembalikan struct JSON yang disandikan.

Waspadalah Perbedaan Antara Router dan Framework

Anda akan menemukan banyak paket web di ekosistem Go, yang sebagian besar adalah router atau kerangka kerja. Router adalah untuk menerima permintaan melalui protokol HTTP.

Anda akan memerlukan paket tambahan untuk bekerja dengan router. Seperti yang ada di tutorial ini, sebagian besar kerangka kerja menyertakan router bawaan di samping fungsionalitas lainnya.