3 poin oleh GN⁺ 2023-12-19 | 1 komentar | Bagikan ke WhatsApp

Cara menyajikan konten HTML

  • Memperkenalkan cara mengembalikan konten HTML dan menangani permintaan AJAX dengan menggunakan PostgREST dan pustaka htmx.
  • htmx mengharapkan respons HTML, dan menggunakannya untuk menggantikan elemen di dalam DOM.

Pengaturan persiapan

  • Membuat aplikasi to-do berdasarkan tutorial 0.
  • Dilakukan tanpa autentikasi, dan memberikan semua izin pada tabel todos kepada pengguna web_anon.
  • Menambahkan text/html sebagai media type handler agar PostgREST mengenali permintaan dari web browser sebagai dokumen HTML.

Membuat respons HTML

  • Membuat fungsi yang mengembalikan file HTML dasar dengan menggunakan Tailwind CSS.
  • Web browser dapat membuka halaman web di http://localhost:3000/rpc/index.

Menampilkan dan membuat to-do

  • Membuat fungsi untuk menampilkan daftar to-do yang sudah dimasukkan ke database.
  • Digunakan untuk membangun template daftar to-do, dan tidak digunakan sebagai endpoint PostgREST.
  • Menambahkan endpoint untuk mendaftarkan to-do ke database dan memodifikasi halaman /rpc/index.

Mengedit dan menghapus to-do

  • Memodifikasi fungsi api.html_todo agar menjadi lebih fungsional.
  • Menambahkan fitur htmx baru: mengubah status to-do, mengembalikan HTML yang dapat diedit untuk to-do, dan menghapus to-do.
  • Menambahkan endpoint untuk mengedit to-do serta memodifikasi dan menghapus to-do di database.

Opini GN⁺

  • Artikel ini bisa menarik bagi para pengembang web, karena menjelaskan cara menyajikan konten HTML dinamis dalam aplikasi web dengan menggunakan PostgREST dan pustaka htmx.
  • Pembaruan halaman web asinkron dengan memanfaatkan AJAX adalah bagian penting dari pengembangan web modern, dan artikel ini memberikan contoh konkret untuk mengimplementasikan fungsi tersebut.
  • Ini adalah materi yang baik untuk mempelajari cara meningkatkan antarmuka pengguna dan mengoptimalkan komunikasi antara server dan klien.

1 komentar

 
GN⁺ 2023-12-19
Opini Hacker News
  • Ringkasan komentar Hacker News tentang PostgREST:
    • Kecintaan pada proyek open source PostgREST: Seorang pengguna menyebut PostgREST sebagai salah satu proyek open source favoritnya, dan mengatakan bahwa kesuksesan Supabase berkat desain PostgREST dan Postgres yang sangat baik. Pengguna ini tidak tahu seberapa besar dukungan yang diberikan Supabase kepada proyek PostgREST, tetapi menyayangkan bahwa meskipun banyak perusahaan menggunakannya, sponsornya hanya 12 orang.
    • Kesulitan mengembangkan aplikasi dengan PostgREST: Pengguna lain mengatakan bahwa pengalaman mereka mengembangkan aplikasi dengan PostgREST tidak begitu baik, dan menyoroti bahwa framework yang tampak sederhana pun akan bermasalah ketika kebutuhan menjadi kompleks. Dalam kasus ini, para pengembang harus menulis banyak stored procedure di database untuk mendapatkan hasil yang diinginkan, dan hal ini menimbulkan masalah skalabilitas.
    • Sulitnya pemeliharaan: Pengguna lain berpendapat bahwa PostgREST memang keren sebagai proof of concept, tetapi memelihara aplikasi web kompleks di dunia nyata akan terasa seperti mimpi buruk.
    • Daya tarik stack pengembangan web yang sederhana: Seorang pengguna menilai stack pengembangan web yang hanya terdiri dari HTML dan database itu menarik, dan melihat tidak perlunya backend atau frontend sebagai hal yang positif.
    • Pola coding pada aplikasi baru/modern: Dengan mencontohkan database dokumen JSON seperti Couchdb, seorang pengguna menjelaskan pendekatan di mana klien mengakses database secara langsung untuk menerima HTML atau JSON. Namun, ia juga menyebut bahwa pendekatan seperti ini menyulitkan pemeliharaan sehingga pengembangannya dihentikan.
    • Keunikan PostgREST dari sudut pandang Haskell: Seorang pengguna menilai bahwa dari sudut pandang Haskell, PostgREST adalah proyek yang sangat jelas, dan justru di situlah letak kejeniusannya.
    • Pengenalan SmoothDB: Seorang pengembang memperkenalkan proyek baru bernama SmoothDB di GitHub yang bertujuan kompatibel dengan PostgREST, dan menyebut bahwa proyek tersebut masih dalam versi beta. SmoothDB ditulis dalam Go dan dapat digunakan secara mandiri atau sebagai modul dalam aplikasi server yang kompleks.
    • Artikel tentang pipeline validasi data dengan PostgREST: Seorang pengguna menyebut bahwa ia telah menulis artikel tentang cara menggunakan PostgREST sebagai pipeline validasi data umum, dan sedang menyiapkan artikel berikutnya tentang cara menggunakannya sebagai lapisan CQRS/REST API.
    • Kombinasi PostgREST dan HTMX: Seorang pengguna mengatakan bahwa ia pernah menggunakan PostgREST dalam proyek sebelumnya dan menilai bahwa PostgREST cocok dipadukan dengan HTMX. Namun, ia menyampaikan kekhawatiran tentang pemeliharaan template HTMX di dalam fungsi SQL.
    • Alat tambahan untuk berkembang menjadi stack yang mudah dipelihara: Seorang pengguna menanyakan pendapat tentang alat tambahan yang diperlukan agar konsep ini bisa berkembang menjadi stack yang mudah dipelihara dan memberikan UX yang baik untuk aplikasi skala menengah hingga besar.