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

hapi – installasi & hello world

0
Degananda.com -

Hapi adalah sebuah framework yang ditulis dalam bahasa javascript. Hapi dijalankan dengan menggunakan nodeJS. Fungsi dari hapi adalah untuk mambangun aplikasi dan services layaknya yang dilakukan oleh express. Umumnya hapi digunakan untuk membangun suatu web services atau RESTful API (Application programming interfaces).

Pada ulasan ini akan dibahas mengenai :

  1. Karakteristik Hapi vs Express berdasarkan literatur di internet.
  2. Installasi Hapi
  3. Basic routing pada Hapi
  4. Hello world

ketiga hal diatas akan diulas secara basic atau dasar. Sehingga kita dapat membangun rangka awal dari suatu web services. Namun pada bagian awal akan dibahas terlebih dahulu mengenai perbandingan antara express dan hapi berdasarkan literatur karena kami bukan expert dalam dua framework tersebut.

Karakteristik Hapi vs express

berikut adalah karakteristik antara hapi dan express

Express Hapi
merupakan framework yang lebih populer dibandingkan dengan express dari sisi dokumentasi, star pada github dan lain-lain tidak lebih populer dibandingkan dengan express.
dokumentasi dan tutorial express lebih banyak. dokumentasi dan tutorial mengenai hapi lebih sedikit.
sistem autentikasi (auth) pada express tidak tersedia secara built in. kita harus menggunakan library lainnya. Misalkan passport dan lain-lain. sedangkan pada hapi, authentikasi (auth) tersedia secara built in. Sehingga kita tidak perlu menggunakan library external dari hapi.
test coverage pada modul-modul di express tidak mencapai 100%. Semua modul pada hapi 100% telah mencapai test coverage.

berdasarkan sedikit komparasi diatas anda dapat menentukan apakah ingin mempelajari hapi atau tidak. Yang jelas untuk mengetahui perbandingan secara nyata maka kita perlu mempelajari keduannya dengan cara mencobannya langsung(terjun menyelami lebih dalam).

Installasi Hapi

terdapat beberapa langkah untuk memulai sebuah project dengna menggunakan hapi dan NodeJS.

1. menginisiasi project node js

npm init

setelah menjalankan perintah diatas, maka isi konfigurasi dari npm sesuai dengan project anda atau secara sederhana biarkan semua konfigurasi diatas secara default(tekan enter seluruh pertanyaan yang muncul pada command line) maka akan mengenerate package.json secara default.

{
  "name": "hapi-lab",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "hapi": "^16.2.0"
  }
}

2. install hapi pada project

perintah yang digunakan adalah

npm install hapi --save

maka hapi telah terinstall pada project.

3. Membuat instances dan konfigurasi hapi

untuk menginisiasi hapi maka kita perlu memanggil hapi(require) dan membuat sebuah instances baru. Setelah itu lakukan konfigurasi untuk http yang akan dibuat.

// memanggil package hapi
var hapi = require('hapi');

// membuat server dan mengkonfigurasi http
var hapiServer = new hapi.Server();
hapiServer.connection({
    host : 'localhost',
    port : '7728'
});

3.1. Membuat route http get default untuk  path “/”

karena ini adalah ulasan mengenai basic installation maka diperlukan route default untuk menunjukan bahwa hapi telah berhasil berjalan pada local machine.

// membuat route basic ke path "/" dengan http gt
hapiServer.route({
    method : 'GET',
    path : '/',
    handler : function(req, res){
        return res("hello world");
    }
})

3.2 menjalankan server hapi

hapi akan berjalan sesuai dengan konfigurasi yang telah kita definisikan

hapiServer.start(
    (error) => {
        console.log('Hapi berjalan ..... pada port : ' + hapiServer.info.port);
    }
)

jalankan dengan perintah

node index.js

maka jika kita akses pada browser.

Routing basic

syntax yang digunakan untuk membuat sebuah route adalah dibawah ini.

// membuat route basic ke path "/" dengan http gt
hapiServer.route({
    method : 'GET',
    path : '/pegawai',
    handler : function(req, res){
        return res("isi respon");
    }
})

kode diatas memiliki tiga buah metadata yang perlu untuk didefinisikan yaitu

  1. Method
    Http method yang diakan digunakan mengakses endpoint atau path. Http method ini seperti layaknya http method pada umumnya yakni : Get, Post, Put atau Delete. Get biasannya digunakan untuk menampilkan data , post digunakan untuk menambahkan data, put digunakan untuk mengubah data(pada database) dan delete digunakan untuk menghapus data(pada database).
  2. Path
    endpoint dari web services. Contohnya yang telah kita buat diatas adalah endpoint “/” atau pada index dari web services.
  3. Handler
    handler adalah metadata yang berguna untuk menangkap respon dari user serta memberikan feedback / respon untuk user dari server. Sehingga fungsi defaultnya adalah sebuah callback function dengan dua parameter request dan reply atau pada express biasannya kita kenal dengan request(req) dan response(res). Gunakan istilah yang biasa anda gunakan