PostgREST 9.0.0 versiyasi, ma'lumotlar bazasini RESTful API ga aylantirish uchun qo'shimchalar

PostgREST 9.0.0 chiqarildi, PostgreSQL DBMS uchun engil qo'shimchani amalga oshirishga ega, mavjud ma'lumotlar bazasidan ob'ektlarni RESTful API ga tarjima qiladigan alohida ishlaydigan veb-server. Relyatsion ma'lumotlarni ob'ektlarga (ORMs) solishtirish o'rniga, PostgREST to'g'ridan-to'g'ri ma'lumotlar bazasida ko'rinishlarni yaratadi. Ma'lumotlar bazasi tomoni JSON javoblarini ketma-ketlashtirish, ma'lumotlarni tekshirish va avtorizatsiya bilan shug'ullanadi. Tizimning ishlashi odatiy serverda soniyasiga 2000 ta so'rovni qayta ishlash uchun etarli. Loyiha kodi Haskellda yozilgan va MIT litsenziyasi ostida tarqatiladi.

Masalan, faqat ma'lumotlar bazasi imtiyoz mexanizmidan foydalanib, HTTP orqali ma'lumotlarga (jadvallar, ko'rish turlari va saqlangan protseduralar) kirish huquqini berishingiz mumkin. Bunday holda, bunday tarjimani kodlashning hojati yo'q va odatda REST API orqali jadvalni mavjud qilish uchun bitta GRANT buyrug'i kifoya qiladi. Token (JWT) bo'yicha kirishni sozlash va dinamik satr darajasidagi xavfsizlikni (Row Level Security) qo'llash orqali "ko'p umr ko'rish" ni tashkil qilish mumkin.

Arxitektura nuqtai nazaridan PostgREST ma'lumotlarga yo'naltirilgan arxitekturaga (Ma'lumotlarga yo'naltirilgan arxitektura) intiladi, bu erda mikroservislar holatlarning o'zini saqlamaydi, lekin buning uchun ma'lumotlarga yagona kirishdan (Ma'lumotlarga kirish qatlami) foydalanadi.

PostgREST 9.0.0 versiyasi, ma'lumotlar bazasini RESTful API ga aylantirish uchun qo'shimchalar

Yangi versiyadagi o'zgarishlar orasida:

  • Saqlash sxemasi keshiga bo'lingan jadvallar qo'shildi, bu esa bunday jadvallarga UPSERT va INSERT operatsiyalarini Joylashuv javobiga joylashtirish, OPTIONS so'rovlarini bajarish va OpenAPI-ni qo'llab-quvvatlashni amalga oshirish imkonini berdi.
  • RPC POST orqali bitta nomsiz parametr bilan funksiyalarni chaqirishga ruxsat beriladi.
  • Bitta JSON parametri bilan funksiyalarni “Prefer: params=single-object” sarlavhasisiz chaqirishga ruxsat beriladi.
  • “Content-Type: application/octet-stream” so‘rovlari yordamida funksiyalarga bayt tipidagi ma’lumotlarni yuklashga ruxsat beriladi.
  • "Content-Type: text/plain" so'rovlari yordamida funksiyalarga matnni yuklashga ruxsat berilgan.
  • Qo‘sh qavs ichida qochib ketadigan belgilar qo‘shildi, masalan, "?col=in.("Double\"Quote"), ?col=in.("Orqaga\\slash")".
  • O‘rnatilgan filtrlar (“/projects?select=*,clients!inner(*)&clients.id=eq.12”) asosida birinchi darajali resurslarni filtrlash imkoniyati taqdim etilgan.
  • "is" operatori "noma'lum" qiymatiga ruxsat beradi.
  • PostgreSQL 14 bilan muvofiqlikka erishildi va PostgreSQL 9.5 ni qo‘llab-quvvatlash to‘xtatildi.

Manba: opennet.ru

a Izoh qo'shish