Open abdu-dotcom opened 2 years ago
Method/Verb Request url : https://www.dicoding.com/academies/261/tutorials/14677?from=14672
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.
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.
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.
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().
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.
EpressJs web framework tertua dan terpopuler di Node.js saat ini. Framework ini sangat ringan, mudah diintegrasikan dengan aplikasi web front-end, dan penulisan kodenya tidak jauh beda dengan Node.js native. ia menjadi framework yang unopinionated alias tidak memiliki aturan untuk menggunakannya. Express tidak menyediakan struktur atau kerangka kerja yang baku untuk diikuti oleh developer. Sehingga, developer menjadi sulit menentukan seperti apa kode yang optimal. Selengkapnya : https://expressjs.com/ Belajar Hapi dari dicoding : https://www.dicoding.com/academies/261/tutorials/14717?from=14712
Hapi menyediakan environment yang lengkap untuk mengembangkan web server yang kompleks. Bila menggunakan Hapi, kita tak perlu tools lain untuk menerapkan layer authentication, tokenize, cors, dan lain sebagainya. Kelemahan Hapi adalah abstraksinya yang terlalu jauh dari Node.js native. Kita perlu belajar secara dalam, untuk menguasai framework ini. Selengkapnya : https://hapi.dev/tutorials/?lang=en_US
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.
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.
Menyiapkan Proyek tool yang perlu disiapkan, yaitu :
nodemon , dengan tools ini kita tak perlu menjalankan ulang server ketika terjadi perubahan pada berkas JavaScript.
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.
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