Kode program : Serve mux

Golang Web – Pengenalan dan cara menggunakan ServeMux

Saat membuat Web, kita biasanya ingin membuat banyak sekali endpoint URL, HandlerFunc sayannya tidak mendukung hal itu. Alternative nya kita bisa menggunakan ServeMux yang merupakan implementasi Handler yang bisa mendukung multiple endpoint.

Berikut adalah contoh baris kode jika kita ingin membuat multiple endpoint dengan ServeMux

package belajar_golang_web

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

func TestServeMux(t *testing.T) {
	mux := http.NewServeMux()
	mux.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
		fmt.Fprint(writer, "Hello World")
	})
	mux.HandleFunc("/hi", func(writer http.ResponseWriter, request *http.Request) {
		fmt.Fprint(writer, "Hi")
	})
	server := http.Server{
		Addr:    "localhost:8080",
		Handler: mux,
	}

	err := server.ListenAndServe()
	if err != nil {
		panic(err)
	}
}
Kode program : Serve mux
Kode program : Serve mux

Pada baris kode diatas perhatikan baris ke 11 dan 14, dimana kita membuat 2 HandleFunc dengan mux yang kita deklarasikan di baris 10. Selanjutnya yang perlu di perhatikan lagi adalah di baris 19 dimana Handler nya kita menggunakan mux. Coba lah akses kembali url http://localhost:8080 danhttp://localhost:8080/hi

Bisa dilihat jika sat ini kita sudah berhasil membuat server dengan multiple endpoint.

URL Pattern

URL Pattern dalam ServeMux sederhana, kita tinggal menambahkan string yang ingin kita gunakan sebagai endpoint, tanpa perlu memasukkan domain web kita. Jika URL Pattern dalam ServeMux kita tambahkan diakhirnya dengan garis miring, artinya semua URL tersebut akan menerima path dengan awalan tersebut, misal /images/ artinya semua URL tersebut akan menerima path dengan awalan tersebut, misal /images/ artinya akan di eksekusi jike endpoint nya /images/, /images/contoh, /images/contoh/lagi. Namun jika terdapat URL Pattern yang lebih panjang, maka akan di prioritaskan yang lebih panjang, misal jika terdapat URL /images/ dan /images/thumbnails/, maka jika mengakses /images/thumbnails/ akan mengakses /images/thumbnails/ bukan /images/.

Pada artikel kali ini kita telah belajar cara membuat ServeMux pada bahasa pemrogaman golang. Dan pada artikel selanjutnya saya akan membahas Request pada golang web.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

About Me

About Me

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Social Profiles

Facebook