Pendahuluan;
Fastify adalah kerangka kerja web untuk Node.js yang berfokus pada penyediaan solusi berkinerja tinggi dan overhead rendah untuk membangun aplikasi web dan API. Dirancang agar mudah digunakan sambil menawarkan fitur-fitur canggih yang membuatnya ideal untuk berbagai macam kasus penggunaan. Fastify membanggakan tolok ukur kecepatan yang mengesankan dan dikenal karena kemampuannya untuk menangani beban tinggi secara efisien.
Keunggulan Fastify:
- Performa: Fastify dibangun dengan fokus pada kecepatan, menjadikannya salah satu kerangka kerja web tercepat yang tersedia untuk Node.js. Overhead rendah dan arsitektur yang efisien berkontribusi pada pengurangan waktu respons dan kinerja keseluruhan yang lebih baik.
- Validasi Berbasis Skema: Fastify menyediakan dukungan bawaan untuk validasi berbasis skema dari muatan permintaan dan respons. Hal ini memungkinkan pengembang untuk menentukan ekspektasi yang jelas untuk data yang masuk, yang mengarah pada peningkatan keandalan dan keamanan.
- Ekstensibilitas: Fastify sangat mudah diperluas, memungkinkan pengembang untuk dengan mudah menambahkan plugin dan middleware khusus untuk meningkatkan fungsionalitas aplikasi mereka. Hal ini membuatnya mudah beradaptasi dengan berbagai macam kebutuhan proyek.
- Dukungan Asinkron: Fastify sepenuhnya merangkul pola pemrograman asinkron, membuatnya sangat cocok untuk menangani operasi terikat I/O secara efisien. Ia memanfaatkan fitur JavaScript modern seperti async/await untuk menyederhanakan kode asinkron.
- Ramah Pengembang: Dengan API yang intuitif dan dokumentasi yang komprehensif, Fastify bertujuan untuk memberikan pengalaman yang ramah pengembang. Ia menawarkan sintaks yang jelas dan ringkas, membuatnya mudah dipahami dan digunakan baik untuk pemula maupun pengembang berpengalaman.
Apa yang akan dibahas dalam tutorial ini:
Dalam tutorial ini, kita akan membahas dasar-dasar penggunaan Fastify untuk membangun API sederhana. Mulai dari menyiapkan proyek Fastify, kita secara bertahap akan menjelajahi fitur-fitur utamanya, termasuk penanganan rute, validasi permintaan, middleware, penanganan kesalahan, pengujian, dan penerapan. Pada akhir tutorial, Anda akan memiliki pemahaman yang kuat tentang cara menggunakan Fastify untuk membuat aplikasi web yang kuat dan efisien.
Prasyarat
Sebelum kita mulai, pastikan Anda telah menginstal prasyarat berikut:
- Node.js dan npm: Fastify memerlukan Node.js dan npm untuk diinstal pada sistem Anda. Anda dapat mengunduh dan menginstalnya dari situs web Node.js resmi.
- Pengetahuan Dasar tentang JavaScript dan Node.js: Tutorial ini mengasumsikan bahwa Anda memiliki pemahaman dasar tentang JavaScript dan cara bekerja dengan Node.js. Keakraban dengan konsep-konsep seperti callback, promise, dan modul akan bermanfaat saat kita menjelajahi fitur-fitur Fastify.
Dengan prasyarat ini, Anda siap untuk mulai membangun dengan Fastify! Mari kita mulai.
Menyiapkan Fastify
Menginstal Fastify melalui npm
Untuk memulai dengan Fastify, Anda pertama-tama perlu menginstalnya melalui npm, yang merupakan pengelola paket untuk Node.js. Jika Anda penggemar Yarn atau Bun, Anda juga dapat mencoba menggunakannya. Untuk panduan ini, saya akan menggunakan NPM.
Dan jika Anda tidak tahu, atau sepenuhnya memahami cara menggunakan NPM, Anda dapat melihat tutorial ini tentang cara mulai menggunakannya.
Untuk memulai, buat folder baru misalnya di Desktop Anda atau direktori kerja tempat Anda ingin mengatur proyek Fastify.
Untuk melakukan ini, cukup jalankan kode berikut di terminal Anda, langkah demi langkah mengikuti satu sama lain
mkdir my-fastify-project
cd my-fastify-project
Sekarang, Anda telah membuat folder dan berpindah ke folder itu dari terminal Anda. Kerja bagus!
Selanjutnya, inisialisasi npm untuk proyek itu, dan instal kerangka kerja Fastify.
npm init -y
npm install fastify
Pada titik ini, proyek Anda hanya terdiri dari file package.json
, package-lock.json
, & node_moudles
, yang berisi metadata tentang proyek Anda dan dependensinya. Saat kita terus membangun aplikasi Fastify kita, kita akan menambahkan lebih banyak file dan direktori ke struktur ini.
Membuat Server Sederhana
Menyiapkan server Fastify dasar
Sekarang setelah kita menyiapkan proyek kita, mari kita buat server Fastify sederhana. Buat file baru bernama index.js
di direktori proyek Anda dan tambahkan kode berikut:
// Impor modul Fastify
const fastify = require('fastify')();
// Definisikan penangan rute untuk URL root
fastify.get('/', async (request, reply) => {
return { hello: 'world' };
});
// Mulai server
const start = async () => {
try {
await fastify.listen({ port: 3000 });
console.log('Server berjalan di http://localhost:3000');
} catch (error) {
console.error('Kesalahan saat memulai server:', error);
process.exit(1);
}
};
start();
Kode ini menyiapkan server Fastify dasar yang mendengarkan permintaan HTTP masuk di port 3000
. Ketika permintaan dibuat ke URL root (/)
, ia merespons dengan objek JSON yang berisi pesan "hello": "world".
Agar kode berikut berfungsi, kita perlu menyuruhnya untuk berjalan. Bagaimana kita bisa melakukannya? Nah, kita dapat menjalankan node index.js
di terminal kita di folder root proyek dan itu akan berfungsi.
Tetapi itu berarti kita harus menjalankan perintah itu setiap kali kita membuat pembaruan file. Kita tidak ingin stres itu. Kita harus dapat menyimpan file, dan secara otomatis memicu pembangunan ulang. Bagaimana kita bisa melakukan itu?
Nah, di situlah Nodemon hadir.
Untuk menginstal Nodemon, cukup jalankan kode berikut di terminal;npm install nodemon --save-dev
.
Itu akan menginstal Nodemon dan kita akan dapat fokus pada kode kita dan tidak secara manual memintanya untuk membangun ulang.
Tetapi kita belum selesai dengan Nodemon. Saya berjanji ini adalah bagian kode terakhir yang akan kita konfigurasi untuk Nodemon. Apa yang perlu kita lakukan? Kita perlu menyuruhnya untuk secara otomatis memicu setiap kali kita menyimpan file. Bagaimana kita melakukan ini?
Buka file package.json
Anda, dan ganti bagian script
dengan kode berikut:
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
Dan selesai! Kita selesai dengan konfigurasi Nodemon, saya janji!
Sekarang untuk memulai server kita, kita perlu menjalankan npm run dev
di direktori root proyek kita. Setelah Anda selesai dengan itu, navigasikan ke browser Anda dan ketik http://localhost:3000/
- Anda akan melihat respons contoh kita hello world
seperti yang kita definisikan dalam file index.js
kita di atas.

Menambahkan rute untuk menangani metode HTTP yang berbeda (GET, POST, dll.)
Fastify memudahkan untuk membangun API REST / menentukan rute untuk menangani metode HTTP yang berbeda seperti GET, POST, PUT, DELETE, dll. Mari kita tambahkan rute untuk menangani permintaan POST. Perbarui file index.js
Anda dengan kode berikut:
// Definisikan penangan rute untuk menangani permintaan POST ke '/data'
fastify.post('/data', async (request, reply) => {
const payload = request.body;
// Proses data yang masuk
// Untuk saat ini, mari kita gema kembali data yang diterima
return { receivedData: payload };
});
Sekarang, server Fastify kita dapat menangani baik permintaan GET ke URL root (/
) dan permintaan POST ke titik akhir /data
.
Merespons dengan data JSON
Dalam kedua penangan rute yang telah kita definisikan ('/'
dan '/data'
), kita merespons dengan data JSON menggunakan metode balasan bawaan Fastify. Fastify secara otomatis menserialisasi objek JavaScript ke JSON, membuatnya mudah untuk mengirim data terstruktur sebagai respons.
Dengan penambahan ini, server Fastify kita sekarang mampu menangani permintaan HTTP dasar dan merespons dengan data JSON.
Tetapi bagaimana kita menguji permintaan POST
? Kita tidak dapat menguji permintaan POST
dari browser, bukan?
Untuk membantu kita, kita akan menggunakan Apidog.
Anda dapat mendaftar untuk akun gratis, mencoba antarmuka web, atau mengunduh aplikasi desktop untuk menguji API yang baru Anda buat.
Untuk membantu Anda memahami cara menggunakan Apidog, berikut adalah panduan yang ditulis dengan baik. Untuk melewati pembicaraan dan membaca yang panjang, Anda dapat memindai bagian ini - ini adalah yang paling penting bagi kita sekarang.
Jika Anda mengikuti panduan di atas, Anda seharusnya sudah familiar dengan Apidog sampai batas tertentu.

Ketuk permintaan dari halaman proyek, dan Anda akan dapat menguji API yang kita buat dari server Fastify.

Seperti yang dapat Anda lihat dari tangkapan layar di atas, Anda perlu mengatur metode HTTP ke POST, masukkan URL yang benar (pastikan server Anda masih berjalan), dan masukkan muatan tubuh Anda.
Mengikuti langkah-langkah di atas dengan benar kemudian akan memberi Anda kode respons 200, dan Anda akan dapat melihat responsnya.
Jika semuanya berjalan dengan baik untuk Anda, Anda akan mendapatkan respons yang sama seperti yang saya dapatkan.
Middleware dan Plugin
Pengantar Middleware di Fastify
Fungsi middleware di Fastify adalah fungsi yang memiliki akses ke objek permintaan dan respons dan dapat melakukan tugas-tugas seperti pencatatan, autentikasi, penguraian data, dll., sebelum meneruskan kontrol ke fungsi middleware atau penangan rute berikutnya. Fungsi middleware dieksekusi dalam urutan mereka ditambahkan ke pipeline aplikasi.
Membuat Fungsi Middleware Kustom
Anda dapat membuat fungsi middleware kustom di Fastify dengan mendefinisikan fungsi yang menerima parameter request
, reply
, dan next
. Berikut adalah contoh middleware pencatatan kustom:
// Middleware pencatatan kustom
const loggerMiddleware = async (request, reply, next) => {
console.log(`[${new Date().toISOString()}] ${request.method} ${request.url}`);
next();
};
// Daftarkan middleware dengan Fastify
fastify.use(loggerMiddleware);
Dalam contoh ini, fungsi loggerMiddleware
mencatat stempel waktu, metode HTTP, dan URL dari setiap permintaan masuk. Kemudian memanggil fungsi next()
untuk meneruskan kontrol ke fungsi middleware atau penangan rute berikutnya.
Itulah cara Middleware bekerja sepenuhnya di Node.js dan kerangka kerja lainnya seperti Express.js.
Menginstal dan Menggunakan Plugin Fastify
Fastify menyediakan ekosistem plugin yang kaya yang memperluas fungsionalitasnya untuk berbagai tujuan seperti autentikasi, integrasi basis data, validasi, dll. Anda dapat menginstal dan menggunakan plugin Fastify melalui npm. Berikut adalah cara menginstal plugin dan mendaftarkannya dengan Fastify:
npm install fastify-auth fastify-cors
// Impor plugin yang diperlukan
const fastifyAuth = require('fastify-auth');
const fastifyCors = require('fastify-cors');
// Daftarkan plugin dengan Fastify
fastify.register(fastifyAuth);
fastify.register(fastifyCors);
Dalam contoh ini, kita telah menginstal dan mendaftarkan dua plugin: fastify-auth
untuk autentikasi dan fastify-cors
untuk dukungan Cross-Origin Resource Sharing (CORS).
Tapi tunggu dulu. Kita tidak akan menguji ini. Itu hanya contoh yang menunjukkan cara menginstal dan menjalankan middleware dan plugin di Fastify.
Berikut adalah artikel untuk mempelajari lebih lanjut tentang middleware dan plugin. Anda dapat melakukan penelitian dan temuan Anda sendiri. Hanya saja jangan sampai bingung. Middleware di Node.js dan Fastify adalah topik yang luas.
Penanganan Kesalahan
Menangani Kesalahan di Rute Fastify
Di Fastify, Anda dapat menangani kesalahan di penangan rute dengan melemparkan kesalahan atau mengembalikannya dari fungsi asinkron. Fastify secara otomatis menangkap kesalahan ini dan mengirimkan respons kesalahan yang sesuai ke klien. Berikut adalah contohnya:
// Penangan rute dengan penanganan kesalahan
fastify.get('/error', async (request, reply) => {
// Simulasikan kesalahan
throw new Error('Ups! Terjadi kesalahan.');
});
Dari contoh itu, katakanlah seorang pengguna menavigasi ke /error yang tidak ada atau sesuatu yang lain, kita dapat melemparkan kesalahan dan memberi tahu pengguna apa yang terjadi.
Jika Anda penasaran (seharusnya), berikut adalah artikel untuk mempelajari lebih lanjut tentang Kesalahan.
Dengan memanfaatkan middleware, plugin, dan fitur penanganan kesalahan di Fastify, Anda dapat meningkatkan fungsionalitas dan keandalan aplikasi web dan API Anda. Fitur-fitur ini memungkinkan Anda untuk memodulasi kode Anda, menambahkan komponen yang dapat digunakan kembali, dan menangani kesalahan dengan baik, yang mengarah pada aplikasi yang lebih mudah dipelihara dan kuat.
Kesimpulan
Dalam tutorial ini, kita telah membahas pengantar komprehensif tentang Fastify, kerangka kerja web yang cepat dan overhead rendah untuk Node.js. Berikut adalah rekap topik-topik utama yang telah kita jelajahi:
- Pengantar Fastify: Kita mulai dengan membahas Fastify dan keunggulannya dibandingkan kerangka kerja Node.js lainnya, termasuk manfaat kinerjanya, API yang mudah digunakan, dan ekosistem plugin yang kaya.
- Menyiapkan Fastify: Kita membahas proses menginstal Fastify menggunakan npm, menginisialisasi proyek Fastify baru, dan menjelajahi struktur proyek. Ini menetapkan fondasi untuk membangun aplikasi Fastify.
- Membuat Server Sederhana: Kita mendemonstrasikan cara menyiapkan server Fastify dasar, menambahkan rute untuk menangani metode HTTP yang berbeda, dan merespons dengan data JSON. Ini menggambarkan kesederhanaan dan fleksibilitas dalam mendefinisikan rute dan menangani permintaan di Fastify.
- Middleware dan Plugin: Kita memperkenalkan konsep middleware di Fastify dan menunjukkan cara membuat fungsi middleware kustom. Selain itu, kita membahas cara memperluas fungsionalitas Fastify dengan plugin, menginstal dan menggunakannya untuk menambahkan fitur seperti autentikasi dan dukungan CORS.
- Penanganan Kesalahan: Kita membahas penanganan kesalahan di Fastify, termasuk cara menangani kesalahan di rute, menggunakan fitur penanganan kesalahan bawaan Fastify, dan menerapkan logika penanganan kesalahan kustom untuk mengelola pengecualian dan memberikan respons kesalahan yang bermakna kepada klien.
Melalui tutorial ini, Anda telah memperoleh pengetahuan untuk mulai membangun aplikasi web dan API dengan Fastify. Anda telah mempelajari tentang fitur-fitur inti Fastify, cara menangani permintaan dan respons, memperluas kerangka kerja dengan plugin, dan mengelola kesalahan secara efektif. Dengan keterampilan ini, Anda diperlengkapi dengan baik untuk menjelajahi fitur-fitur Fastify yang lebih canggih dan membuat aplikasi web yang efisien dan terukur.
Saat Anda terus bekerja dengan Fastify, ingatlah untuk menjelajahi dokumentasi ekstensif dan ekosistem plugin yang tersedia. Komunitas Fastify aktif dan suportif, menawarkan banyak sumber daya untuk membantu Anda memajukan keterampilan Anda dan membangun aplikasi yang kuat.
Terima kasih telah mengikuti tutorial tentang Fastify ini. Selamat membuat kode!