إطلاق PostgREST 9.0.0، الوظائف الإضافية لتحويل قاعدة البيانات إلى RESTful API

تم إصدار PostgREST 9.0.0، وهو خادم ويب يعمل بشكل منفصل مع تنفيذ وظيفة إضافية خفيفة الوزن لنظام PostgreSQL DBMS، وترجمة الكائنات من قاعدة بيانات موجودة إلى RESTful API. بدلاً من تعيين البيانات العلائقية إلى كائنات (ORMs)، يقوم PostgREST بإنشاء طرق عرض مباشرة في قاعدة البيانات. يتعامل جانب قاعدة البيانات أيضًا مع تسلسل استجابات JSON والتحقق من صحة البيانات والترخيص. أداء النظام كافٍ لمعالجة ما يصل إلى 2000 طلب في الثانية على خادم نموذجي. كود المشروع مكتوب بلغة هاسكل ويتم توزيعه بموجب ترخيص معهد ماساتشوستس للتكنولوجيا (MIT).

على سبيل المثال، باستخدام آلية امتياز قاعدة البيانات فقط، يمكنك منح الوصول إلى البيانات (الجداول وأنواع العرض والإجراءات المخزنة) عبر HTTP. في هذه الحالة، ليست هناك حاجة لتشفير مثل هذه الترجمة وعادةً ما يكون أمر GRANT واحدًا كافيًا لإتاحة الجدول عبر REST API. من الممكن تكوين الوصول عن طريق الرمز المميز (JWT) وتنظيم "تعدد الإيجارات" من خلال استخدام الأمان الديناميكي على مستوى الصف (أمان مستوى الصف).

من الناحية المعمارية، يدفع PostgREST نحو بنية موجهة للبيانات (Data-Oriented Architecture)، حيث لا تقوم الخدمات الصغيرة بحفظ الحالات نفسها، ولكنها تستخدم وصولًا واحدًا إلى البيانات (طبقة الوصول إلى البيانات) لهذا الغرض.

إطلاق PostgREST 9.0.0، الوظائف الإضافية لتحويل قاعدة البيانات إلى RESTful API

من بين التغييرات في الإصدار الجديد:

  • تمت إضافة الجداول المقسمة إلى ذاكرة التخزين المؤقت لمخطط التخزين، مما أتاح لهذه الجداول تضمين عمليات UPSERT وINSERT في استجابة الموقع، وتنفيذ استعلامات OPTIONS، وتنفيذ دعم OpenAPI.
  • يُسمح عبر RPC POST باستدعاء الوظائف بمعلمة واحدة غير مسماة.
  • يُسمح باستدعاء الوظائف بمعلمة JSON واحدة بدون رأس "Prefer: params=single-object".
  • يُسمح بتحميل البيانات من النوع bytea في الوظائف باستخدام الاستعلامات ذات "Content-Type: application/octet-stream".
  • يُسمح بتحميل النص في الوظائف باستخدام الاستعلامات ذات "نوع المحتوى: نص/عادي".
  • تمت إضافة دعم للهروب من الأحرف داخل الأقواس المزدوجة، على سبيل المثال، "?col=in.("Double\"Quote"), ?col=in.("Back\\slash").
  • تم توفير القدرة على تصفية موارد المستوى الأول استنادًا إلى عوامل التصفية المضمنة ("/projects?select=*,clients!inner(*)&clients.id=eq.12".
  • يسمح عامل التشغيل "is" بالقيمة "غير معروفة".
  • تم تحقيق التوافق مع PostgreSQL 14 وتوقف دعم PostgreSQL 9.5.

المصدر: opennet.ru

إضافة تعليق