Membangun Web Server dengan Go
Tanpa angin tanpa badai, mendadak ada tulisan Routing File di Go Lang Web Server, tapi belum dibahas cara untuk membangun web server dengan Go. Ha, gimana?
Apa itu Go? Go adalah bahasa pemrograman structural yang dikembangkan di Google, bahasa pemrograman yang mirip dengan C. Kenapa Go? Go menjanjikan kecepatan dan beban yang ringan ketika digunakan.
Persiapan 1 - Install Go
Untuk pengguna sistem GNU/Linux dan kerabatnya, termasuk Mac OS X dan BSD, gunakan perintah ini di terminal untuk menginstall go.
$ tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
Setelah selesai, export directory go sebagai PATH dan tentukan juga GOPATH sebagai berkas kerja.
$ export PATH=$PATH:/usr/local/go/bin $ export GOPATH=$HOME/WORKING_DIRECTORY
Persiapan 2 - Berkas Kerja
Sebelum mulai kecebur basah-basahan coding, siapkan dulu berkas kerja (working directory) untuk aplikasi pertama, format berkas kerja untuk go seperti ini: $GOPATH/src/domain/username/projectname
Misal /home/sendy/Documents/project/go
adalah $GOPATH saya, jadi berkas kerja untuk proyek saya sekarang adalah /home/sendy/Documents/project/go/src/sendy.pw/sendy/webserver
. Contoh lain jika nanti proyeknya akan disimpan di github, bisa menggunakan domain github dan username github seperti ini /home/sendy/Documents/project/go/src/github.com/sendz/webserver
.
Persiapan 3 - Install Gin HTTP Framework
Apa itu Gin? Gin adalah HTTP Framework yang memudahkan pengembangan web server berbasis go.
$ go get github.com/gin-gonic/gin
Coding
Buatlah satu file dengan ekstensi .go dengan nama yang sama dengan nama project di berkas kerja yang sudah ditentukan, misal webserver.go
.
[codeflask language="go" title="webserver.go"]package main
import (
"github.com/gin-gonic/gin" // import package gin
"net/http" // import package http
)
func PageAbout(c *gin.Context) {
c.String(http.StatusOK, "Ini adalah halaman About")
}
func main() {
router := gin.Default() // deklarasi variable router sebagai gin default
router.GET("/", func (c *gin.Context) { // bentuk routing dengan inline function
c.String(http.StatusOK, "Selamat Datang di GO Server")
})
router.GET("/about", PageAbout) // bentuk routing dengan memanggil fungsi
router.Run(":8080") // menjalankan go server di port 8080
}[/codeflask]
Selesai? jalankan perintah $ go run *.go
di berkas kerja via terminal lalu buka http://localhost:8080/
di web browser, lalu akan tampil seperti ini
[caption id="attachment_4104" align="alignnone" width="700"] Tampilan dari web server go[/caption]
[caption id="attachment_4105" align="alignnone" width="700"] Halaman About dari webserver go[/caption]
Coba lagi buka http://localhost:8080/about
untuk menampilkan halaman About yang telah dibuat, dan akan tampil seperti ini
Selesai? Selamat mengembangkan.
Link kiranya bermanfaat: