00:00:00Bagaimana jika database Postgres Anda adalah API-nya dan Anda tidak perlu menulis kode backend sama sekali?
00:00:05Setiap kali Anda membangun API, Anda menulis kode backend yang sama berulang kali. Rute, kontroler, validasi, autentikasi, semua ini hanya untuk berbicara dengan
00:00:14database Anda. Lalu Anda mengubah satu kolom dan semuanya rusak. Tanpa kode backend kustom. Tanpa kontroler. Tanpa lapisan ORM.
00:00:21Itulah yang dilakukan Postgres. Ini adalah mesin di balik Supabase. Ini menangani trafik produksi yang serius dan hanya dalam beberapa menit
00:00:29saya akan menunjukkan caranya kepada Anda.
00:00:31Sekarang, jika Anda membangun API, yang satu ini mengatasi titik masalah paling menjengkelkan di seluruh tumpukan teknologi.
00:00:40Logika duplikat. Anda mendefinisikan data di dalam database.
00:00:44Lalu Anda mendefinisikan aturan akses dan kode backend serta validasi di tempat lain.
00:00:49Kemudian kita melakukan hal yang sama untuk penanganan respons di tempat lain. Sistem yang sama, banyak lapisan, banyak peluang untuk terjadi kerusakan.
00:00:56Postgres memangkas semua ini. Ini memiliki lebih dari 26.000 bintang di GitHub dan digunakan oleh Supabase pada skala produksi.
00:01:03Ini mengubah skema Anda menjadi REST API yang siap produksi hanya dalam hitungan menit. Tidak ada ORM, tidak ada kontroler.
00:01:10Keamanan berada di dalam database, yang berarti lebih sedikit duplikasi, lebih sedikit pemeliharaan, dan jauh lebih sedikit waktu yang terbuang untuk menyambungkan hal-hal membosankan itu.
00:01:19Mari saya tunjukkan. Jika Anda menyukai alat coding yang mempercepat alur kerja Anda, pastikan untuk berlangganan.
00:01:24Kami memiliki video baru yang dirilis setiap saat.
00:01:26Baiklah. Sekarang mari kita benar-benar membangun ini. Oke, inilah pengaturannya. Tiga kontainer.
00:01:32Itu saja. Postgres, Postgrest, dan Swagger UI untuk dokumentasi.
00:01:38Inilah file Docker Compose-nya. Tidak banyak yang terjadi di sini. Hanya tiga layanan yang telah saya hubungkan.
00:01:45Saya menjalankannya dengan perintah andalan kita Docker Compose. Ini akan segera berjalan dan saya selesai.
00:01:51Tidak perlu menginstal dependensi. Tidak perlu mengatur server. Sekarang, mari kita lihat database-nya.
00:01:55Saya akan menjalankan perintah docker di sini dan selesai. Tabel todos yang sangat sederhana. ID, judul, selesai, dibuat, semua hal dasar.
00:02:04Itulah, benar-benar hanya itu yang terjadi di sini. Tapi bagian ini, bagian ini adalah saat itu menjadi berguna.
00:02:09Keamanan tingkat baris (Row Level Security). Kita menentukan siapa yang bisa mengakses apa secara langsung di SQL di dalam database.
00:02:17Tidak ada logika autentikasi backend yang duduk di tempat lain di sistem kita. Inilah kebijakannya.
00:02:22Saya memberikan akses penuh anonim menggunakan 'true' dengan pemeriksaan 'true'. Jadi untuk saat ini, semuanya diizinkan. Sekarang perhatikan ini.
00:02:29Saya akan memanggil 'get todos' dengan perintah curl ini dan selesai. JSON lengkap langsung dari Postgres.
00:02:35Tanpa kode API. Sekarang membangun dari itu, izinkan saya memfilternya sekarang. Ini langsung berfungsi.
00:02:41Jika saya mengurutkannya, boom, itu dia. Sekarang mari kita buat baris lain, kirim permintaan POST dengan bodi JSON dan kita selesai.
00:02:50Dan itu sudah ada di database. Tidak ada lapisan ORM yang mencoba mengejar di sini.
00:02:56Dan inilah bagian yang benar-benar membuat orang kagum. Dokumen Open API, Swagger UI yang dibuat otomatis. Sudah ada di sini.
00:03:04Saya membukanya dan kita mendapatkan API interaktif penuh. Anda bisa menjelajahi semuanya, menguji endpoint, melihat skema.
00:03:11Jadi dari nol, Anda sekarang memiliki CRUD penuh, pemfilteran, pengurutan, penomoran halaman. Anda memiliki autentikasi dasar via RLS dan dokumen hanya dalam waktu kurang dari satu menit.
00:03:21Jadi mengapa orang-orang menggunakan ini? Yah, jika itu belum cukup, karena pekerjaan backend tradisional memiliki "pajak" tambahan.
00:03:26Dan sebagian besar dari pajak itu bukanlah pekerjaan produk. Sebenarnya yang kita lakukan adalah semua pekerjaan pemeliharaan ini, kan?
00:03:33Jika Anda memikirkan tumpukan teknologi normal, mungkin itu Express, Prisma, kontroler, layanan, validasi di satu tempat.
00:03:40Lalu kita punya autentikasi di tempat lain. Logika database Anda berada di tempat lain sepenuhnya.
00:03:45Sekarang bandingkan dengan Postgres. Skema Anda mendefinisikan API. Keamanan Anda adalah RLS.
00:03:52Hubungan antar data Anda sudah ada di database. Jadi alih-alih membangun lapisan penerjemah di sekitar data Anda, kita langsung mengekspos datanya dengan benar.
00:04:02Itu sangat berbeda. Sekarang bandingkan dengan backend kustom. Anda harus menulis semuanya sendiri.
00:04:07Itu memberi Anda fleksibilitas. Ya, tentu saja. Tapi itu juga memberi Anda lebih banyak kode untuk dipelihara.
00:04:13Postgres tetap lebih sederhana. REST plus Postgres. Keamanan ada di dalam database. Tidak tersebar di middleware atau handler rute.
00:04:23Pemeliharaan Anda tetap rendah karena API Anda mengikuti skema Anda. Itulah mengapa orang-orang menyukainya.
00:04:28Sekarang, sejujurnya, di sinilah orang-orang mendapat masalah karena begitu sesuatu mulai terasa bersih seperti ini, orang mulai bertindak seolah-olah ini menyelesaikan segalanya.
00:04:34Ini tidak menyelesaikan segalanya, kan? Masih ada hal-hal yang harus kita perhatikan.
00:04:38Akan ada pengorbanan dan Anda harus tahu apa yang harus diwaspadai sebelum Anda menyentuh ini.
00:04:43Apa yang disukai orang di sini adalah, yah, agak jelas. Cepat untuk dibangun. Anda bisa beralih dari ide ke API yang berfungsi dengan sangat cepat.
00:04:51Dan ini memang berskala dengan sangat baik juga. Selain itu, kan, Supabase sudah membuktikannya.
00:04:55Mereka menggunakan ini. Tapi kekurangannya adalah hal-hal seperti penggunaan keamanan tingkat baris yang berat akan meningkatkan beban database.
00:05:02Jadi Anda perlu berpikir hati-hati tentang bagaimana Anda merancang ini. Logika yang kompleks dapat mendorong Anda ke arah banyak fungsi atau view SQL.
00:05:10Dan beberapa orang menyukai itu dan beberapa orang akan membencinya. Jadi, haruskah Anda menggunakan ini atau bahkan mencobanya?
00:05:15Ya, untuk proyek yang tepat. Jika Anda membangun prototipe, MVP, atau apa pun yang berpusat di sekitar Postgres, maka tentu saja, mengapa tidak mencobanya, kan?
00:05:23Anda akan bergerak lebih cepat. Anda akan menulis lebih sedikit kode dan Anda mendapatkan default keamanan yang lebih kuat dengan mendorong aturan ke dalam database.
00:05:32Sekarang, jika aplikasi Anda memiliki logika yang sangat kompleks, Anda mungkin masih menginginkan lapisan backend tipis di atasnya, sesuatu yang kecil, lapisan BFF untuk kasus khusus.
00:05:40Tapi meskipun begitu, Postgres dapat melakukan sebagian besar pekerjaan berat di bawahnya. Jadi poin utamanya adalah ini. Postgres memungkinkan Anda merilis lebih cepat, mengamankan lebih baik, dan memelihara lebih sedikit.
00:05:50Database Anda menjadi sumber data yang sebenarnya, dan API Anda dihasilkan dari itu alih-alih menjadi sistem terpisah sendiri.
00:05:58Jika Anda menikmati alat coding dan tips seperti ini, pastikan untuk berlangganan channel Better Stack. Sampai jumpa di video lainnya.