Aplikasi Web pada Go - Hello World

Untuk mendukung pengembangan aplikasi Web, pada Go kita dapat memanfaatkan package internal dari Go yaitu net/http .

Untuk membuat sebuah Routing, kita dapat menggunakan fungsi http.HandleFunc dimana membutuhkan 2 parameter. Parameter pertama adalah alamat dari route dan parameter kedua adalah handler atau response.

http.HandleFunc("/about", handlerIndex)
// "/about" : alamat routing pada aplikasi
// handlerIndex : handler atau response yang terjadi jika mengakses routing "/about" 

handlerIndex sendiri adalah berupa fungsi yang dapat kita buat. Jadi jika ada beberapa routing, maka akan ada beberapa fungsi juga.

func handlerIndex(w http.ResponseWriter, r *http.Request) {
	data := "Welcome to Web Applications written by GO"
	w.Write([]byte(data))
}

data pada kode di atas adalah string yang menjadi response dan ingin kita tampilkan. Lalu w.Write adalah fungsi untuk menampilkan teks string pada variabel data. Namun karena data bertipe string , kita harus melakukan casting/konversi tipe data ke dalam []byte .

Tentu saja kita membutuhkan alamat port yang akan kita gunakan untuk menjalankan aplikasi kita. Kita dapat membuat port dengan cara seperti berikut ini:

port := "localhost:3030"

cukup mudah bukan? kita bisa mengganti alamat port sesuai dengan yang kita inginkan. Misalnya menjadi localhost:9090 .

Sebagai developer tentu kita wajib mengetahui setiap log pada aplikasi kita. Pada kasus ini kita ingin menjalankan log untuk mengetahui bahwa aplikasi web kita sudah berjalan. Kita dapat memanfaatkan package internal Go yaitu log .

log.Println("Server started at", port)

Terakhir untuk menjalankan server, kita dapat menggunakan fungsi http.ListenandServe yang membutuhkan 2 parameter yaitu port dan handler . Untuk parameter kedua, saat ini kita isi saja dengan nil .

http.ListenAndServe(port, nil)

Fungsi di atas memiliki balikan data error yang dapat kita manfaatkan untuk membuat dan mengecek kondisi jika program atau server tidak bisa dijalankan maka kita akan mengoutputkan error.

package main

import (
	"fmt"
	"log"
	"net/http"
)

func handlerIndex(w http.ResponseWriter, r *http.Request) {
	data := "Welcome to Web Applications written by GO"
	w.Write([]byte(data))
}

func handlerAuthor(w http.ResponseWriter, r *http.Request) {
	data := "David Winalda"
	w.Write([]byte(data))
}

func main() {
	http.HandleFunc("/", handlerIndex)
	http.HandleFunc("/author", handlerAuthor)

	port := "localhost:3030"

	log.Println("Server started at", port)

	err := http.ListenAndServe(port, nil)

	if err != nil {
		fmt.Println(err.Error())
	}
}

Mari kita jalankan program Go pada terminal.

Mari kita menjalankan routing yang kedua yaitu /author , maka akan terlihat tampilan berikut ini:

Last updated