Framework Hapi | Routes

Langkah

Routes digunakan untuk menghandle/menangani permintaan dari alamat yang diakses beserta method-nya. Untuk kode minimal routes sebagai berikut.

          
server.route({
  method: 'GET|POST|PUT|DELTE',
  path: '/hello',
  handler: function(request, h) {
    return h.response('Success').code(201);
  }
})
          
        
Untuk keterangannya. Contoh untuk routes CRUD (Create, Read, Update, Delete)
          

          
        
Jika sudah dapat diakses lewat browser atau curl dengan method GET dan alamat http://localhost:3000/hello, maka akan terdapat tulisan "Hello from server".
          

          
        

Parameter

Bagaimana mengambil data pada parameter yang dikirim. Untuk membuat parameter cukup berikan tanda kurung {[name]} disertai nama untuk variabel nantinya diambil. Contoh /home/{name}. Untuk membuat sebuah parameter menjadi opsional maka berikan tanda kurung (?) di akhir nama. Untuk mengambil data/variabel parameter request.params.[nama_parameter]
          
server.route({
  method: 'GET',
  path: '/hello/{name}',
  handler: function (request, h) {
    const name = request.params.name ? request.params.name : 'name empty';
    return `Hello ${name}!`;
  }
});
          
        
Lalu untuk parameter opsional.
          
server.route({
  method: 'GET',
  path: '/hello/{name?}',
  handler: function (request, h) {
    const name = request.params.name ? request.params.name : 'name empty';
    return `Hello ${name}!`;
  }
});
          
        

Query Parameters

Untuk kasus query dapat diakses lewat request.query.[nama_key]. Karena isi query adalah key=value, lalu untuk contoh permintaan.
http://localhost:3000/home?name=ifandika
Untuk kode program query
          
server.route({
  method: 'GET',
  path: '/home',
  handler: function (request, h) {
    const name = request.query.name;
    // Object destructing
    const { name } = request.query;
    return `Hello ${name}!`;
  }
});

// Mengambil keseluruhan data query
server.route({
  method: 'GET',
  path: '/home',
  handler: function (request, h) {
    const res_query = request.query;
    return `Hello ${res_query.name}!`;
  }
});
          
        

Request Payload (Body)

Kemudian untuk mengambil data pada body permintaan, dengan request.payload. Contoh kasus login dengan payload.
          
{
  "username": "ifandika",
  "password": "ifan123"
}
          
        
Maka ketika akses http://localhost:3000/login dan juga payload/body dengan format json. Lalu untuk kode programnya.
          
server.route({
  method: 'POST',
  path: '/login',
  handler: function (request, h) {
    const payload = request.payload;
    return `Login ${payload.username} and ${payload.password}`;
  }
});