Belajar Golang #37 : Menjalankan HTTP Server – WEB

Tutorial Golang ke – 37 yang membahas mengenai HTTP server di Golang dimana memiliki tujuan yaitu dapat di jalankan di sebuah browser dan dapat di akses, seperti google chrome.

Apakah anda pernah berpikir bagaimana cara agar kode kita dapat di akses di browser ?

By Default, kita dapat menggunakan web server agar dapat menampilkan dan di akses di halaman browser.

Namun…

Menariknya di dalam bahasa program GO yaitu Golang mempunyai package untuk menjalankan program agar dapat di akses di browser.

Jika sebelumnya kita hanya menampilkan hasil kode program di terminal, sekarang kita dapat membuat website menggunakan bahasa program golang.

Menarik bukan ?

Apa itu HTTP Server ?

Kita mulai dari pengertian HTTP server di bahasa program Golang. Jika di bedah 2 kata tersebut menjadi HTTP dan Server. Sebenarnya 2 kata tersebut mempunyai makna yang berbeda namun berkaitan. HTTP sendiri merupkan sebuah protokol, sedangkan server merupakan jenis layanan jaringan.

Jadi,

HTTP Server adalah sebuah package bawaan golang yang digunakan untuk menjalankan kode program di halaman browser. Dimana kode program kita dapat di akses melalui browser dengan protokol http maupun https.

Dengan menggunakan http server maka kita dapat membuat website untuk di akses oleh pengguna.

Membuat Website dengan Golang

Package untuk menjalankan http server yaitu net/http. Hasil yang di tampilkan bisa beranekaragam di browser, seperti :

  • HTML
  • JSON
  • XML
  • dan Lainnya.

Namun pada contoh web golang pertama ini saya akan memberikan contoh dimana hasilnya berupa HTML.

Sekarang mari kita jalankan.

Hasilnya :

Belajar Golang #37 : Menjalankan HTTP Server - WEB
Membuat Website dengan Golang

Perhatikan kode di atas.

Kita pelajari pelan-pelan. Pada fungsi main() terdapat kode http.HandleFunc("/", welcome) , kode tersebut digunakan untuk memberikan routing terhadap fungsi yang akan di jalankan. Pada contoh di atas routing "/" mengakses pada function welcome.

Di function welcome terdapat parameter w http.ResponseWriter, r *http.Request, padahal ketika kita memanggil fungsi itu tidak ada parameter yang di kirim.

Yuk kita pahami hal itu. Sebenar nya yang kita lakuin pertama adalah memanggil fungsi HandlerFunc() yang ada di dalam package server http. Dimana ketika memanggil fungsi tersebut ada 2 parameter wajib yaitu

  • string
  • func(ResponseWriter, *Request).

w http.ResponseWriter digunakan untuk memberikan hasil response ke browser, sedangkan r *http.Request untuk menangkap permintaan, seperti parameter URL.

Untuk mencetak dan menampilkan di halaman browser mempunyai banyak varian penulisan, dalam contoh di atas menggunakan fmt.Fprintf(w, dataHTML).

Referensi Bacaan : https://golang.org/pkg/io/

Dimana parameter yang di butuhkan dalam kode fmt.Fprint yaitu w adalah io.writer yang artinya dapat menggunakan ResponseWriter, dan dataHTML adalah tipe interface, artinya bisa berisi tipe data apa saja.

Konfigurasi HTTP Server

Terkadang kita akan mengubah pengaturan http server seperti port , waktu tunggu server dan lain-lain. Hal itu kita bisa lakukan konfigurasi dengan mudah.

Berikut ini contohnya.

main.go

Hasilnya :

Belajar Golang #37 : Menjalankan HTTP Server - WEB
Konfigurasi HTTP Server Golang

Perhatikan kode di atas, untuk menjalankan server tidak menggunakan http lagi melainkan variable server yang sudah di lakukan konfigurasi. Di dalam variable server melakukan perubahan nilai struct Server bawaan golang.

Uji coba golang di atas func yang saya jalankan langsung di dalam isi variable HandleFunc. Dimana isi nya mencetak string seperti gambar di atas.

Masih belum puas dengan contoh di atas ?

Mari kita buat latihan lagi.

Latihan menggunakan HTTP Server

Jika sebelumnya kita menggunakan http.HandleFunc() untuk menjalankan fungsi. Sebenarnya bukan hanya menggunakan itu saja, ada bentuk lainnya yaitu menggunakan Handle.

Format nya seperti ini :

http.Handle("nama_route", Handler).

Berikut ini contoh latihan membuat http server golang dengan berbagai macam bentuk.

main.go

Perhatikan kode di atas, terdapat 3 routing dimana yang 2 udah kita pelajari sebelumnya. Saya akan bahas kode yang berisi dengan sintaks http.Handle(). Terdapat 2 parameter yaitu nama routing dan http.handler dengan fungsi clousure yang berisi http.HandlerFunc.

Sekian tutorial golang yang membahas mengenai http server untuk golang web. Terima kasih.

Leave a Reply