Go ialah bahasa pengaturcaraan yang menarik untuk membina aplikasi web moden serta perisian sistem. Ia mencipta buzz besar selepas dikeluarkan dan menguasakan perkhidmatan seperti Docker, Kubernetes, Terraform, Dropbox dan Netflix .
Tambahan pula, koleksi pakej terbina dalam Go yang mantap menjadikannya pilihan terbaik untuk pengaturcaraan web. Artikel ini akan menunjukkan kepada anda cara menulis pelayan web asas dalam Go.
Import pakej yang diperlukan
Pakej net/HTTP menyediakan segala yang diperlukan untuk mencipta pelayan web dan pelanggan. Pakej ini membentangkan beberapa fungsi berguna untuk mengendalikan pengaturcaraan web.
Anda boleh mengimportnya dengan menambahkan baris di bawah pada permulaan kod sumber anda:
import "net/http"
Artikel itu juga akan menggunakan pakej fmt untuk memformat rentetan dan pakej log untuk mengendalikan ralat. Anda boleh mengimportnya secara individu seperti yang ditunjukkan di atas, atau mengimport semua pakej menggunakan satu pernyataan import:
import (
"fmt"
"log"
"net/http"
)
Anda boleh meneruskan dengan menulis fungsi utama selepas mengimport pakej yang diperlukan. Teruskan dan simpan fail sumber dengan sambungan .go . Jika anda menggunakan Vim , gunakan arahan di bawah untuk menyimpan dan keluar dari Vim:
:wq server.go
Tulis fungsi utama
Program Go berada terus dalam fungsi utama, dengan tepat dinamakan "utama". Anda perlu membuat panggilan pelayan di sini. Tambahkan baris berikut pada kod sumber dan lihat apa yang mereka lakukan:
func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}
Contohnya ialah mentakrifkan fungsi utama menggunakan kata kunci func . Go mempunyai peraturan ketat tentang kedudukan pendakap pembukaan, jadi pastikan pendakap permulaan berada pada garisan yang betul. Pernyataan pertama dalam main mentakrifkan bahawa semua permintaan web ke laluan akar ( "/" ) akan dikendalikan oleh indeks, fungsi jenis http.HandlerFunc .
Baris kedua memulakan pelayan web melalui fungsi http.ListenAndServe . Ia memberi isyarat kepada pelayan untuk terus mendengar permintaan HTTP yang masuk pada port pelayan 8080. Parameter kedua fungsi ini diperlukan untuk menyekat program sehingga tamat.
Memandangkan http.ListenAndServe sentiasa mengembalikan ralat, contoh membungkus panggilan ini di dalam log.Panggilan maut . Kenyataan ini merekodkan sebarang mesej ralat yang dijana pada bahagian pelayan.
Melaksanakan fungsi pemprosesan
Seperti yang anda lihat, fungsi utama memanggil indeks fungsi pengendali untuk mengendalikan permintaan pelanggan. Walau bagaimanapun, contoh belum lagi menentukan fungsi ini untuk pelayannya.
Mari tambahkan pernyataan yang diperlukan untuk menjadikan fungsi indeks boleh digunakan:
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}
Fungsi ini mengambil dua hujah berbeza jenis http.ResponseWriter dan http.Request . Parameter http.ResponseWriter mengandungi respons pelayan kepada permintaan masuk, dalam bentuk objek http.Request .
Fungsi Fprintf daripada pakej fmt digunakan untuk memaparkan dan memanipulasi rentetan teks. Artikel menggunakan ini untuk memaparkan respons pelayan kepada permintaan web. Akhir sekali, elemen r.URL.Path[1:] digunakan untuk mengambil data selepas laluan akar.
Tambah semua bahagian yang tinggal
Pelayan web Go anda akan sedia setelah anda menambahkan semua komponen yang tinggal. Kod akan kelihatan seperti ini:
import (
"fmt"
"log"
"net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}
Baris pertama diperlukan untuk menyusun kod pelayan web Go ini sebagai fail boleh laku.

Susun kod pelayan web Go ini sebagai fail boleh laku