Keluaran PostgREST 9.0.0, alat tambah untuk menukar pangkalan data menjadi API RESTful

PostgREST 9.0.0 telah dikeluarkan, pelayan web yang beroperasi secara berasingan dengan pelaksanaan alat tambah ringan pada DBMS PostgreSQL, menterjemah objek daripada pangkalan data sedia ada kepada API RESTful. Daripada memetakan data hubungan ke dalam objek (ORM), PostgREST mencipta pandangan terus dalam pangkalan data. Bahagian pangkalan data juga mengendalikan pensirian respons JSON, pengesahan data dan kebenaran. Prestasi sistem adalah mencukupi untuk memproses sehingga 2000 permintaan sesaat pada pelayan biasa. Kod projek ditulis dalam Haskell dan diedarkan di bawah lesen MIT.

Contohnya, hanya menggunakan mekanisme keistimewaan pangkalan data, anda boleh memberikan akses kepada data (jadual, jenis paparan dan prosedur tersimpan) melalui HTTP. Dalam kes ini, tidak perlu mengekod terjemahan sedemikian dan biasanya satu arahan GRANT sudah cukup untuk menyediakan jadual melalui API REST. Ia adalah mungkin untuk mengkonfigurasi akses mengikut token (JWT) dan mengatur "multitenancy" melalui penggunaan keselamatan tahap baris dinamik (Row Level Security).

Dari segi seni bina, PostgREST mendorong ke arah seni bina berorientasikan data (Seni Bina Berorientasikan Data), di mana perkhidmatan mikro tidak menyimpan keadaan sendiri, tetapi menggunakan satu akses kepada data (Lapisan Akses Data) untuk ini.

Keluaran PostgREST 9.0.0, alat tambah untuk menukar pangkalan data menjadi API RESTful

Antara perubahan dalam versi baharu:

  • Jadual yang dipisahkan telah ditambahkan pada cache skema storan, yang membolehkan jadual tersebut membenamkan operasi UPSERT dan INSERT dalam respons Lokasi, melaksanakan pertanyaan OPTIONS dan melaksanakan sokongan OpenAPI.
  • Melalui RPC POST ia dibenarkan untuk memanggil fungsi dengan satu parameter yang tidak dinamakan.
  • Ia dibenarkan untuk memanggil fungsi dengan satu parameter JSON tanpa pengepala "Prefer: params=single-object".
  • Ia dibenarkan untuk memuatkan data jenis bytea ke dalam fungsi menggunakan permintaan dengan "Jenis Kandungan: aplikasi/strim oktet".
  • Dibenarkan untuk memuatkan teks ke dalam fungsi menggunakan pertanyaan dengan "Content-Type: text/plain".
  • Menambahkan sokongan untuk melepaskan aksara dalam kurungan berganda, contohnya, "?col=in.("Double\"Quote"), ?col=in.("Kembali\\slash").
  • Keupayaan untuk menapis sumber peringkat pertama berdasarkan penapis terbina dalam (β€œ/projects?select=*,clients!inner(*)&clients.id=eq.12” telah disediakan.
  • Operator "is" membenarkan nilai "tidak diketahui".
  • Keserasian dengan PostgreSQL 14 telah dicapai dan sokongan untuk PostgreSQL 9.5 telah dihentikan.

Sumber: opennet.ru

Tambah komen