Rilis PostgREST 9.0.0, add-on untuk mengubah database menjadi RESTful API

PostgREST 9.0.0 dirilis, server web yang beroperasi secara terpisah dengan implementasi add-on ringan ke DBMS PostgreSQL, menerjemahkan objek dari database yang ada ke dalam RESTful API. Daripada memetakan data relasional ke dalam objek (ORM), PostgREST membuat tampilan langsung di database. Sisi database juga menangani serialisasi respons JSON, validasi data, dan otorisasi. Kinerja sistem cukup untuk memproses hingga 2000 permintaan per detik pada server biasa. Kode proyek ditulis dalam Haskell dan didistribusikan di bawah lisensi MIT.

Misalnya, hanya dengan menggunakan mekanisme hak istimewa database, Anda dapat memberikan akses ke data (tabel, tipe tampilan, dan prosedur tersimpan) melalui HTTP. Dalam hal ini, tidak perlu menyandikan terjemahan seperti itu dan biasanya satu perintah GRANT sudah cukup untuk membuat tabel tersedia melalui REST API. Dimungkinkan untuk mengonfigurasi akses berdasarkan token (JWT) dan mengatur "multitenancy" melalui penggunaan keamanan tingkat baris dinamis (Keamanan Tingkat Baris).

Secara arsitektural, PostgREST mendorong arsitektur berorientasi data (Data-Oriented Architecture), di mana layanan mikro tidak menyimpan status itu sendiri, tetapi menggunakan satu akses ke data (Data Access Layer) untuk ini.

Rilis PostgREST 9.0.0, add-on untuk mengubah database menjadi RESTful API

Di antara perubahan dalam versi baru:

  • Tabel yang dipartisi ditambahkan ke cache skema penyimpanan, yang memungkinkan tabel tersebut menyematkan operasi UPSERT dan INSERT dalam respons Lokasi, menjalankan kueri OPTIONS, dan mengimplementasikan dukungan OpenAPI.
  • Melalui RPC POST diperbolehkan memanggil fungsi dengan satu parameter yang tidak disebutkan namanya.
  • Diperbolehkan memanggil fungsi dengan satu parameter JSON tanpa header β€œPrefer: params=single-object”.
  • Diperbolehkan memuat data bertipe bytea ke dalam fungsi menggunakan kueri dengan "Tipe Konten: aplikasi/aliran oktet".
  • Diizinkan memuat teks ke dalam fungsi menggunakan kueri dengan "Jenis Konten: teks/polos".
  • Menambahkan dukungan untuk meng-escape karakter di dalam tanda kurung ganda, misalnya, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Kemampuan untuk memfilter sumber daya tingkat pertama berdasarkan filter bawaan (β€œ/projects?select=*,clients!inner(*)&clients.id=eq.12” telah disediakan.
  • Operator "adalah" mengizinkan nilai "tidak diketahui".
  • Kompatibilitas dengan PostgreSQL 14 telah tercapai dan dukungan untuk PostgreSQL 9.5 telah dihentikan.

Sumber: opennet.ru

Tambah komentar