Pengertian Not Found Handler
Selain Router bisa mengendalikan panic
, dia juga bisa memiliki handler untuk halaman not found atau sering kita sebut halaman tidak bisa diakses. Not Found handler adalah handler yang dieksekusi ketika client mencoba melakukan request terhadap halaman atau URL website kita yang memang tidak terdapat di dalam Router service kita. Secara default, jika tidak ada route maka akan tidak ditemukan, tetapi Router akan melanjutkan request tersebut ke http.NotFound
, namun kita juga bisa mengubahnya menjadi halaman router tertentu dengan cara mengubah
router.NotFound = http.Handler
Cara Implementasi
Kita akan mencoba mengimplementasikan bagaimana handler untuk mengalihkan halaman yang tidak memiliki route atau halaman dalam service kita. Baik, kita coba buka file handler.go
selanjutnya tambahkan handler not found yang diatas pernah dijelaskan menjadi seperti ini.
func NotFoundHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "halaman tidak ditemukan")
}
Setelah itu kita panggil fungsi NotFoundhandler
tersebut pada main fungsi pada file main.go
.
router.NotFound = http.HandlerFunc(NotFoundHandler)
Nah kita sudah menerapkan halaman tidak ditemukan 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 not found custom sebelumnya akan menampilkan halaman seperti ini.
➜ santekno-hugo git:(main) ✗ curl --location --request GET 'http://localhost:8080/haha'
404 page not found
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 GET 'http://localhost:8080/haha'
halaman tidak ditemukan%
05 Mempelajari Panic Handler
07 Menangani Method Not Allowed
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
