abdu-dotcom / Belajar-Membuat-Aplikasi-Back-End-untuk-Pemula

0 stars 0 forks source link

Membangun Web Service menggunakan Node.js #2

Open abdu-dotcom opened 2 years ago

abdu-dotcom commented 2 years ago

Membuat HTTP Server Http module berfungsi untuk membuat HTTP server yang merupakan instance dari http.server. Method ini menerma satu parameter custom callback yang digunakan sebagai reques listener. Request merupakan object yang menyimpan informasi terkait permintaan yang dikirimkan oleh client.

cara agar server selalu sedia menangani permintaan yang masuk dengan method listen() dapat menerima 4 parameter. Selengkapnya : https://www.dicoding.com/academies/261/tutorials/14672?from=14667

abdu-dotcom commented 2 years ago

Method/Verb Request url : https://www.dicoding.com/academies/261/tutorials/14677?from=14672

abdu-dotcom commented 2 years ago

Routing Request Ketika menangani request, hal yang perlu kita cek selain method adalah URL atau alamat yang dituju dari request tersebut. Request ke dicoding.com akan menampilkan homepage Dicoding, sedangkan dicoding.com/about akan menampilkan halaman tentang Dicoding. Teknik ini dinamakan Routing. Routing merupakan istilah dalam menentukan respons server berdasarkan path atau url yang diminta oleh client.

abdu-dotcom commented 2 years ago

Response Status Selengkapnya : https://developer.mozilla.org/en-US/docs/Web/HTTP/Status?retiredLocale=id

merupakan salah satu bagian dari respons yang berisikan tentang informasi apakah sebuah request yang berisikan tentang informasi apakah sebuah request berhasil atau gagal dilakukan. Status yang diberikan berupa kode (status code) dan pesan dari kode tersebut dalam bentuk teks (status message).

100-199 : informational responses.
200-299 : successful responses.
300-399 : redirect.
400-499 : client error.
500-599 : server errors.
abdu-dotcom commented 2 years ago

Response Header Selengkapnya : https://www.dicoding.com/academies/261/tutorials/14697?from=14692 https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types Standard properti pada header : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers

Header respons menampung informasi terkait respons yang diberikan oleh server. Informasi dapat berupa status respons, MIME types, tanggal, atau informasi lainnya yang mungkin dibutuhkan oleh client.

server bisa merespons dengan memberikan data dalam tipe (MIME types) lain, seperti XML, JSON, gambar, atau sekadar teks biasa. Apa pun MIME types yang digunakan, web server wajib memberi tahu pada client.

abdu-dotcom commented 2 years ago

Response Body Selengkapnya : https://www.dicoding.com/academies/261/tutorials/14147/ https://www.dicoding.com/academies/261/tutorials/14702?from=14697

Seperti objek WritableStream lainnya, untuk menuliskan data pada respons kita bisa gunakan method response.write() dan diakhiri dengan method response.end().

abdu-dotcom commented 2 years ago

Apa itu Web Framework? Web framework adalah sebuah kerangka yang dapat membantu mempermudah pengembangan web termasukd alam membuat web server. Dengan menggunakan framework, penulis kode akan lebih terstruktur, mudah dipelihara, dan gampang dikembangkan. Web Framework menyediakan sekumpulan tools dan library yang dapat menyederhanakan hal-hal yang sering dilakukan dalam pengembangan web, seperti pembuatan server, routing, menangani permintaan, interaksi dengan database, otorisasi, hingga meningkatkan ketahanan web dari serangan luar.

Di Node.js terdapat banyak Web Framework yang dapat Anda gunakan. Masing-masing framework yang ada tentu memiliki kelebihan dan kekurangan.

Penggunaan framework menjadi pilihan personal. Salah satu faktornya adalah kasus yang hendak Anda hadapi. Ketika ingin membangun server yang sederhana, katakanlah untuk mendukung aplikasi front-end di-render di sisi server, express adalah pilihan yang tepat. Namun, bila Anda ingin membangun web server yang kompleks tanpa membutuhkan effort yang besar, Hapi adalah pilihan yang tepat.

abdu-dotcom commented 2 years ago

Response Toolkit Selengkapnya : https://hapi.dev/api/?v=20.1.0#request-properties https://hapi.dev/api/?v=20.2.2#response-toolkit

request parameter merupakan objek yang menampung detail dari permintaan client, seperti path dan query parameters, payload, headers, dan sebagainya.

Parameter h tidak hanya berfungsi untuk menetapkan status kode respons. Melalui h, Anda juga bisa menetapkan header response, content type, content length, dan masih banyak lagi.

abdu-dotcom commented 2 years ago

Menyiapkan Proyek tool yang perlu disiapkan, yaitu :

  1. nodemon , dengan tools ini kita tak perlu menjalankan ulang server ketika terjadi perubahan pada berkas JavaScript.

  2. ESLint, ia dapat membantu atau membimbing Anda untuk selalu menuliskan kode JavaScript dengan gaya yang konsisten.

Struktur Proyek prinsip single responsibility approach. Artinya, kita gunakan satu berkas JavaScript untuk satu tujuan saja server.js : Memuat kode untuk membuat, mengonfigurasi, dan menjalankan server HTTP menggunakan Hapi. routes.js : Memuat kode konfigurasi routing server seperti menentukan path, method, dan handler yang digunakan. handler.js : Memuat seluruh fungsi-fungsi handler yang digunakan pada berkas routes. notes.js : Memuat data notes yang disimpan dalam bentuk array objek.