Pengertian Method Not Allowed
Ketika kita menggunakan ServerMux, kita kita tidak bisa menentukan HTTP Method apa yang akan kita gunakan pada Handler. Namun pada Router yang sedang kita gunakan ini, kita bisa menentukan HTTP Method apa yang ingin kita gunakan sehingga pada client akan mengirim method yang sesuai dengan router yang sudah kita tentukan. Jika tidak sesuai dengan ketentuan pada Router maka akan terjadi error Method Not Allowed.
Secara default jika terjadi error seperti ini, Router akan memanggil fungsi http.Error
dan saat ini kita akan coba mengubahnya sesuai dengan keinginan kita dengan mengubah pada
router.MethodNotAllowed = http.Handler
Cara Implementasi
Saat kita melakukan pengesetan MethodNotAllowed
ini sama halnya seperti postingan sebelumnya yaitu router NotFound
. Yaitu kita perlu membuat suatu fungsi handler terlebih dahulu seperti ini pada file handler.go
.
func MethodNotAllowedHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "method tidak didukung")
}
Setelah itu kita panggil fungsi MethodNotAllowedHandler
tersebut pada main fungsi pada file main.go
.
router.MethodNotAllowed = http.HandlerFunc(MethodNotAllowedHandler)
Nah kita sudah menerapkan halaman method not allowed pada router service kita. Selanjutnya kita akan mencoba untuk mengujinya, maka terlebih dahulu kita jalankan ulang program atau service kita dengan perintah ini.
go build && ./learn-golang-httprouter
Jika kita bandingkan dengan sebelum menggunakan router method not allowed yang sudah diubah, sebelumnya akan menampilkan halaman seperti ini.
➜ santekno-hugo git:(main) ✗ curl --location --request POST 'http://localhost:8080/panic'
Method Not Allowed
lalu setelah kita menggunakan custom handler not found maka kita coba akses halaman sembarang dengan menggunakan perintah cURL dibawah ini dan akan menampilkan halamanm sesuai yang sudah kita buat pada router diatas.
➜ santekno-hugo git:(main) ✗ curl --location --request POST 'http://localhost:8080/panic'
method tidak didukung%
Maka kita bisa mengubah apapun yang kita mau jika method yang tidak sesuai dengan yang sudah kita set pada Router dengan informasi yang lebih relevan dan bisa dibaca oleh pengguna.
06 Menangani Halaman Not Found
08 Membuat Middleware Router
Artikel Terhangat
47 Membuat Mutation Login dan Signup
08 Aug 2025
69. Studi Kasus: Retry dan Backoff Strategy
08 Aug 2025
46 Menambahkan Middleware Autentikasi JWT
08 Aug 2025
68. Kompresi Data (gzip) di gRPC
08 Aug 2025
67. Retry Mechanism di Client gRPC
08 Aug 2025
44 Mocking Database untuk Test Resolver
08 Aug 2025
66. Deadline dan Timeout pada gRPC
08 Aug 2025

47 Membuat Mutation Login dan Signup

69. Studi Kasus: Retry dan Backoff Strategy

46 Menambahkan Middleware Autentikasi JWT

68. Kompresi Data (gzip) di gRPC

67. Retry Mechanism di Client gRPC

44 Mocking Database untuk Test Resolver
