06 Menangani Halaman Not Found

06 Menangani Halaman Not Found

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

05 Mempelajari Panic Handler

05 Mempelajari Panic Handler

Pengertian Panic Handler

Ketika kita membuat logic pada handler pasti kita memikirkan suatu kasus ketika terjadi panic, lalu apa yang harus kita lakukan? Dalam Panic handler ini secara otomatis akan terjadi error dan web akan berhenti mengembalikan response. Pada materi sebelumnya kita pernah membahas tentang Web menanangi panic dengan membuat Middleware khusus secara manual. Namun di Router sudah disediakan untuk menangani panic dengan cara menggunakan attribute PanicHandler.

04 Mempelajari Serve File

04 Mempelajari Serve File

Pengertian Serve File

Pada materi Membuat Web Golang. Maka pada Router pun sudah mendukung serve static file menggunakan fungsi ServeFiles(Path, FileSystem) yang mana pada Path kita harus menggunakan Catch All Parameters. Sedangkan pada FileSystem bisa melakukan manual load dari folder atau menggunakan golang Embed seperti yang pernah kita bahas di materi sebelumnya.

03 Mempelajari Route Pattern

03 Mempelajari Route Pattern

Penggunaan Named Parameter

Apakah Router Pattern itu memiliki Pola? Betul sekali setiap endpoint itu memiliki pola parameter pada suatu URL dan sering disebut dengan Named Parameter. Named Parameter ini adalah pola pembuatan parameter dengan menggunakan nama. Setiap nama parameter diawali dengan titik dua : lalu diikuti dengan nama parameter-nya. Misalkan contoh seperti dibawah ini.

02 Mempelajari HTTP Router Params

02 Mempelajari HTTP Router Params

Penggunaan HTTP Router Params

Pada httprouter.Handle memiliki parameter tambahan yaitu Params yang mana parameter tersebut digunakan untuk menyimpan parameter yang dikirim dari client tetapi Params ini bukan query dari parameter melainkan yaitu parameter dari URL. Kadang kita butuh untuk membuat URL yang tidak fix atau bisa berubah-ubah misalkan /product/1, /product/2 dan seterusnya.

01 Pengenalan HTTP Router

01 Pengenalan HTTP Router

Pengenalan

HttpRouter merupakan salah satu open source library yang populer untuk HTTP Handler di golang. HttpRouter ini terkenal dengan kecepatannya dan sangat minimalis atau simpel dikarenakan memiliki fitur untuk routing saja, tidak memiliki fitur apapun selain itu. Jika teman-teman ingin lihat lebih detail bisa kunjungi github-nya di sini https://github.com/julienschmidt/httprouter

20 Routing Library

20 Routing Library

Routing Library

Golang sebenarnya sudah menyediakan ServeMux sebagai handler yang bisa menghandler beberapa endpoint atau istilahnya adalah routing. Tetapi kebanyakan programmer Golang biasanya akan menggunakan Library untuk melakukan routing hal ini dikarenakan ServeMux tidak memiliki advaced fitur seperti path variable, auto binding parameter dan middleware. Sehingga banyak alternatif lain yang bisa kita gunakan untuk library routing selain ServeMux.

19 HTTP Middleware

19 HTTP Middleware

Middleware

Dalam pembuatan web, konsep middleware sering kita dengar atau filter atau interceptor yang mana ini adalah sebuah fitur yang kita bisa menambahkan kode sebelum dan setelah sebuah handler dieksekusi.

18 Download File

18 Download File

Download File

Selain upload file, kita juga perlu atau membutuhkan halaman yang bisa melakukan download file atau sesuatu yang ada pada website kita. Pada library Golang sudah disediakan yaitu FileServer dan ServeFile. Jika kita ingin memaksa file di download tanpa harus di render oleh browser maka kita bisa menggunakan header Content-Disposition. Lebih lengkapnya bisa dilihat di halaman ini https://developer.mozilla.org/en-US/docs/Web/Headers/Content-Disposition.

17 Upload File

17 Upload File

Upload File

Selain menerima input data berupa form dan query params, biasanya kita juga membutuhkan input data berupa file dari pengguna kita. Golang sebenarnya sudah memiliki fitur tersebut untuk menangani management upload file tersebut. Hal ini lebih memudahkan kita jika kita membuat web yang bisa menerima input file.

16 HTML Web Redirect

16 HTML Web Redirect

Redirect

Pada saat kita membuat sebuah website, jika pengguna melakukan akses ke berbagai halaman dengan sembarang maka akan terjadi halaman tidak ditemukan. Maka kita perlu membuat redirect sebuah halaman jika pengguna melakukan suatu aksi pada halaman website kita. Misalkan setelah selesai login, maka kita akan lakukan redirect ke halaman dashbard. Redirect itu sendiri sebenarnya sudah standard dalam HTTP dan bisa melihat di halaman website https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections. Kita hanya perlu membuat response code 3xx dan menambahkan header location yang akan dituju. Untungnya pada Golang ada fungsi yang bisa kita gunakan untuk mempermudah ini.

15 Web XSS (Cross Site Scripting)

15 Web XSS (Cross Site Scripting)

Pengenalan XSS (Cross Site Scripting)

XSS adalah salah satu security issue yang biasa terjadi ketika membuat web. XSS biasanya terdapat celah keamanan dimana orang bisa secara sengaja memasukkan parameter yang mengandung script atau Javascript agar bisa di render oleh halaman website. Tujuan dari XSS ini adalah untuk mencuri cookie browser pengguna yang sedang mengakses website dan bisa menyebabkan akun pengguna bisa diambil alih jika kita sebagai pemilik website tidak menanganinya dengan baik.