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 paling populer dari Go. 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:

Pergilah dapatkan github.com/gin-gonic/gin

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

impor (
"github.com/gin-gonic/gin"
"catatan"
"bersih/http"
)

fungsiutama() {
router := gin. Bawaan()

router. DAPATKAN("/halo", fungsi(konteks *gin. Konteks) {
konteks. JSON(http. Status Oke, Gan. H{"sukses": "Berhasil mencapai titik akhir"})
})

catatan. Fatal (http. DengarkanDanServe(":8080", nol))
}

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.

2. Kerangka Serat

Serat adalah memori-aman, seperti ExpressJS kerangka kerja 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:

Pergilah dapatkan github.com/gofiber/fiber/v2

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

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

fungsiutama() {
aplikasi := serat. Baru()

aplikasi. Dapatkan("/halo", fungsi(ctx *serat. Ctx)kesalahan {
kembali ctx. SendString("Halo")
})

catatan. Fatal (aplikasi. Mendengarkan(":8080"))
}

Itu Baru metode mengembalikan instance baru dari aplikasi Fiber. Itu Mendapatkan metode adalah untuk mengatur DAPATKAN permintaan. Dalam hal ini, /hello 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.

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

Pergilah dapatkan github.com/kataras/iris/v12@lastest

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

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

fungsiutama() {
aplikasi := iris. Baru() // contoh Iris baru

aplikasi. Menangani("DAPATKAN", "/halo", fungsi(ctx iris. Konteks) {
_, err := ctx. JSON (iris. Peta{"pesan": "halo"})

jika salah != nol {
kembali
}
})

salah := aplikasi. Lari (iris. Addr(":8080"), iris. TanpaServerError (iris. ErrServerDitutup))

jika salah != nol {
kembali
}
}

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

4. Kerangka Beego

beego adalah kerangka kerja 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.

Pergilah dapatkan -u github.com/beego/beego/v2

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

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

Tipe Instance Pengontrol struktur {
web. Pengontrol // titik masuk untuk aplikasi beego
}

fungsi(pengontrol *Instance Pengontrol)Mendapatkan() {
pengontrol. Ctx. WriteString("halo dunia")
}

fungsiutama() {
web. Router("/halo", &ControllerInstance{}) // pemasangan dengan beego
web. Lari() // menjalankan aplikasi beego
}

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

5. Kerangka Revel

bersenang-senang bersinar untuk fleksibilitas yang diberikannya untuk membangun aplikasi web. Anda dapat menggunakan perutean aman tipe Revel, membuat pengontrol, dan menggunakan Buka template 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:

Pergilah dapatkan github.com/revel/revel

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

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

Tipe Model struktur { // struktur model sederhana
Pesan rangkaian`json:"pesan"`
Keterangan rangkaian`json:"deskripsi"`
}

Tipe Aplikasi struktur {
* bersenang-senang. Pengontrol // titik masuk untuk permintaan
}

fungsi(Aplikasi Aplikasi)Halo()bersenang-senang.Hasil {
model := Model{
Pesan: "sukses",
Deskripsi: "Halo!, Dunia",
}

aplikasi. Tanggapan. ContentType = "aplikasi/json"
kembali aplikasi. 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.