Get Path Parameter

Path parameter merupakan data yang disisipkan dalam suatu URL. Path parameter sifatnya tidak bisa kosong seperti query parameter. Contoh URL berikut localhost:5000/test/Dana/21 memiliki path parameter yaitu dana dan 21. Untuk memperoleh path parameter dengan http native bisa menggunakan package strings seperti code di bawah ini.

package main

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

func main() {
	mux := http.NewServeMux()

	var handlerMain http.HandlerFunc = func(w http.ResponseWriter, r *http.Request) {
		// string prefix untuk mengembalikan string tanpa prefix
		data := strings.TrimPrefix(r.URL.Path, "/test/")
		// split untuk memisahkan string dengan karakter tertentu
		strSlice := strings.Split(data, "/")
		fmt.Fprintf(w, "Name : %s\n", strSlice[0])
		fmt.Fprintf(w, "Id : %s\n", strSlice[1])
	}
	mux.HandleFunc("/test/", handlerMain)

	server := http.Server{
		Addr:   "localhost:5000",
		Handler: mux,
	}

	err := server.ListenAndServe()
	if err != nil{
		panic(err.Error())
	}
}

Last updated