#Golang-Web-Server

20 artikel

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.

14 HTML Template Cache

14 HTML Template Cache

Pengenalan Template Cache

Pada kode-kode program sebelumnya yang sudah kita pelajari secara praktik itu tidak efisien. Kenapa seperti itu? karena setiap diakses maka akan memanggil fungsi dan menjabarkan data yang dikirim ke dalam template tersebut sehingga prosesnya pun membutuhkan eksekusi yang tinggi. Setiap handler dipanggil kita akan selalu parsing ulang template-nya. Maka idealnya template hanya melakukan parsing satu kali saja diawal ketika aplikasi akan berjalan maka selanjutnya data template saja yang di caching (disimpan memory) sehingga tidak perlu akses data dan melakukan parsing lagi agar website kita yang kita buat itu bisa semakin cepat.

13 HTML Template Function

13 HTML Template Function

Pengenalan Template Function

Selain mengakses field dalam template, kita juga bisa melakukan akses terhadap suatu fungsi atau function dalam golang. Cara untuk mengakses function sama seperti halnya mengakses field namun jika fungsi tersebut memiliki parameter maka kita bisa gunakan tambahan parameter yang dikirim ketika memanggil fungsi di template-nya tersebut.

12 HTML Template Layout

12 HTML Template Layout

Pengenalan Template Layout

Saat kita membuat halaman website ada beberapa bagian yang selalu sama pada tiap halaman misalnya yaitu header dan footer, maka jika terdapat bagian yang sama itu disarankan untuk disimpan pada template yang terpisah agar bisa digunakan di template yang lain atau kadang kita sebut reusable. Nah pada golang template iin sudah mendukung import dari template lain sehingga bisa kita gunakan untuk mempermudah pembuatan website.

11 HTML Template Action

11 HTML Template Action

Pengenalan Template Action

Tidak hanya teks saja kita bisa render dalam template tetapi kita juga bisa mendukung perintah action seperti percabangan if, perulangan for dan lain-lain. Contoh misalkan kita menggunakan percabangan if seperti ini

10 HTML Template Data

10 HTML Template Data

Pengenalan Template Data

Jika Anda sudah mempelajari HTML Template pada artikel sebelumnya, maka kita akan lanjutkam mengenai template data dimana data ini bisa kita tampilkan secara dinamis dengan cara menggunakan data struct ataupun map. Namun perlu diketahui perubahan di dalam text template kita perlu tahu nama field atau key yang akan kita gunakan untuk mengisi data dinamis tdi template. Kita bisa menyebutkan nama field atau key tersebut seperti contoh {{.NamaField}}.

09 Mengenal HTML Template

09 Mengenal HTML Template

Web Dinamis menggunakan Template

Pada postingan sebelumnya kita telah membahas web dinamis tetapi dengan menggunakan respon string yang terdapat pada statik file. Maka pada kesempatan kali ini kita akan mencoba mengenal templating pada golang dimana halaman katakanlah html tersebut akan dinamis dan bisa berubah-ubah dengan data yang diakses oleh user.