lifelong learner — urip iku urup, currently working on accenture.

“validator” untuk pembangunan web services.

0
Degananda.com -

Pada saat membangun aplikasi pada server(server-side) terkadang kita harus membatasi dan memastikan format dari suatu input. Contohnya pada saat membangun suatu web services. Setiap endpoint pada web services tentunnya memiliki request body. Namun request body tersebut tidak harus di berikan nilai. Biasannya hanya web services dengan http method Post ataupun put yang diberikan nilai request body. Namun tidak menutup kemungkinan pada http request method lainnya juga membutuhkan nilai request body.

Masalah yang timbul adalah bagaimana kita dapat menformat bentuk dari request body tersebut. Cara yang paling basic dan harus dilakukan adalah dengan menentukan jenis dari request body. kita dapat tentukan hal tersebut menggunakan modul body parser(misalnya kita format dalam bentuk JSON). Lalu bagaimana menfilter/menformat json tersebut agar nilainya sesuai dengan tipedata yang diharapkan. Contohnya pada kasus json dibawah ini.

{
    "email" : "degananda.ferdian@gmail.com",
    "nama" : "dega",
    "umur" : "24"
}

Pada kasus diatas kita memiliki data dalam bentuk JSON dan terdapat tiga item yakni email, nama dan umur. Bagaimana cara untuk memastikan bahwa user nantinnya akan memasukan email dengan format email (ada “@” , dan sebagainnya),  nama tidak memiliki karakter “angka” , ataupun umur harus berisi hanya angka? jawabannya adalah dengan memvalidasi setiap input yang kita terima. Terdapat sebuah modul nodejs yang bernama “validator” yang dapat menghandle problem diatas.  Keuntungan utama dari penggunaan validator menurut kami adalah karena validator tidak hanya tersedia di NodeJS namun juga dapat digunakan pada frontend(JS / es6). Pepatah mengatakan bahwa sambil menyelam minum air.

Express validator vs validator

Jawabannya adalah sangat sederhana kita dapat menggunakan express validator ataupun validator namun yang pasti adalah express validator hanya dapat digunakan pada express (nodeJS) sedangkan validator dapat digunakan pada berbagai framework js. Contohnya kita dapat menggunakannya pada hapi, express, sail dan lain sebagainnya. Berikut adalah link github dari validator

https://www.npmjs.com/package/validator

Cara penggunaan Validator pada express

Ulasan kali ini akan membahas penggunaan validator pada express. Untuk mendemokan penggunaan validator ini kita akan menggunakan source code web services sederhana yang dibangun dengan menggunakan express dan mongodb. Anda dapat mengklone atau download dari link github dibawah ini. Jangan lupa untuk mengganti konfigurasi koneksi mongodb sesuaikan dengan konfigurasi pada localmachine anda.

https://github.com/degananda/express-mongodb/tree/1.0

atau jika anda tidak ingin mengklone dibawah ini kami sediakan source code web services tersebut.

perhatikan pada endpoint  { “/note” HTTP POST  }. Pada endpoint tersebut memiliki fungsi untuk menambahkan note baru kedalam collecitons. Yang akan kita filter atau validasi adalah http request body yang dibutuhkan. Endpoint tersebut membutuhkan

request body deskripsi
judul_note judul dari note harus di isi tidak boleh null. dapat berupa angka maupun string biasa.
isi_note isi dari note harus di isi dan tidak boleh null. dapat berupa angka maupun string biasa.

kedua request.body tersebut akan kita filter menggunakan modul validator.

langkah 1 : install validator

untuk menginstall validator perintah yang digunakan adalah

npm install validator --save

langkah 2 : mengenal beberapa metode validasi pada valitor

berikut ini adalah beberapa metode validasi yang disupport oleh modul validator.

perintah / fungsi deskripsi
 isEmail  memastikan value berupa format email yang valid
isEmpty memastikan value tidak memiliki panjang /length = 0 atau intinnya memastikan agar value tidak null.
isAlphanumeric memastikan value hanya mengandung huruf dan angka
isAscii memastikan value hanya mengandung karakter yang teregister pada ASCII

untuk daftar metode validasi yang lengkap anda dapat melihatnya di

https://github.com/chriso/validator.js

langkah 3 : implementasi validasi

kode untuk mengimplementasikan validator adalah sebagai berikut ini

</pre>
<div>
<div>// Endpoint : POST
app.post('/note', function(req, res ){
if(req.body.isi_note && req.body.judul_note){
if(!validator.isEmpty(JSON.stringify(req.body.isi_note)) && !validator.isEmpty(JSON.stringify(req.body.judul_note))){
this.noteCollection.insert({
"judul_note" : req.body.judul_note,
"isi_note" : req.body.isi_note,
"date_posted" : new Date().getTime()
}, function(err, result){
if(!err){
res.status(200).send('berhasil menambahkan note');
} else {
throw err;
}
});
} else {
res.status(400).send('mohon masukan request body yang diperlukan');
}
} else {
res.status(400).send('mohon masukan request body yang diperlukan');
}
});</div>
</div>
<pre>