PostgREST ، واجهة برمجة تطبيقات REST لأي قاعدة بيانات PostgreSQL مكتوبة بلغة هاسكل

PostgREST- شعار

postgREST هو خادم ويب مستقل تحويل أي قاعدة بيانات PostgreSQL مباشرة إلى RESTful API. مكتوب في هاسكل ، تقدم AP أكثر نظافة ومتوافقة مع المعايير. بينما تحدد القيود والأذونات الهيكلية لقاعدة البيانات نقاط النهاية وعمليات واجهة برمجة التطبيقات.

تصف وثائق PostgREST أنه "بديل لبرمجة CRUD اليدوية." PostgREST هي برمجيات وسيطة مفتوحة المصدر وواجهات برمجة التطبيقات التي تعرضها PostgREST تتوافق مع مواصفات OpenAPI (المعروفة سابقًا باسم مواصفات Swagger). وفقًا لوثائقه ، فإنه يدير أصلاً التبعيات بين الجداول في قاعدة البيانات الخاصة بك ، مما يسمح لك من خلال طلب REST بسيط باسترداد البيانات من صلة بين جدولين.

سيكون PostgREST سريعًا جدًا مع وقت استجابة أقل من ثانية لما يصل إلى 2000 طلب في الثانية على طبقة Heroku المجانية.

يقول الفريق: "إذا كنت معتادًا على الخوادم المكتوبة بلغات مترجمة ، فاستعد لتفاجأ بسرور بأداء PostgREST.

ثلاثة عوامل تساهم في هذه السرعة حسب رأي الفريق.

  1. أولا، الخادم مكتوب بلغة هاسكل باستخدام خادم HTTP Warp (لغة مترجمة).
  2. ثم، تفويض أكبر عدد ممكن من العمليات الحسابية إلى قاعدة البيانات، بما في ذلك تسلسل استجابات JSON مباشرة في SQL ، والتحقق من صحة البيانات ، إلخ.
  3. وأخيرا، استخدم مكتبة Hasql للحفاظ على مجموعة من اتصالات قاعدة البيانات، البروتوكول الثنائي PostgreSQL ، ولا يزال بدون حالة للسماح بالتدرج الأفقي.

postgREST يعالج المصادقة (عبر JSON Web Tokens) وتفويض الإذن إلى دور المعلومات المحددة في قاعدة البيانات. هذا يضمن وجود مصدر إعلاني واحد فقط للحقيقة للأمن.

عند التعامل مع قاعدة البيانات ، يفترض الخادم هوية المستخدم المصادق عليه حاليًا وأثناء الاتصال لا يمكنه فعل أي شيء لا يستطيع المستخدم فعله بنفسه. يمكن إنشاء أشكال أخرى من المصادقة في JWT البدائية.

من ناحية أخرى عندما يتعلق الأمر بسلامة البيانات، PostgREST بدلاً من الاعتماد على مخطط العلاقة الكائن (ORM) وترميز حتمي مخصص ، يفرض هذا النظام قيودًا تعريفية مباشرة على قاعدة البيانات الخاصة بك.

لذلك ، لا يمكن لأي تطبيق الإضرار ببياناتك (بما في ذلك خادم واجهة برمجة التطبيقات). يعرض PostgREST واجهة HTTP بنسخ احتياطية مختلفة لتجنب المشاكل ، بما في ذلك تطبيق طلبات PUT. بعبارة أخرى ، لا يوجد ORM متضمن.

يتم إنشاء طرق عرض جديدة في SQL مع تأثيرات أداء معروفة. أفضل شيء في PostgREST هو أنه يمكن لمسؤول قاعدة البيانات إنشاء واجهة برمجة تطبيقات من البداية بدون برمجة مخصصة.

بالنسبة للبعض ، يعد PostgREST أيضًا بديلًا مثيرًا للاهتمام لقاعدة بيانات NoSQL أو GraphQL مكشوفة أصلاً في API إذا كنت بحاجة إلى الحفاظ على نموذج علائقي. يجدون أنه من المؤسف أن هذه البرامج الوسيطة غير متوفرة كمعيار في مستودعات الحزم لتوزيعات Linux الكبيرة.

كيفية تثبيت PostgREST على Linux؟

تم إصدار الإصدار 6.0.2 في أغسطس الماضي مع إضافات جديدة وبعض التغييرات. يمكن الحصول على هذا الإصدار من جيثب.

الرابط هو هذا.

بالمثل، للراغبين في تثبيت PostgREST ، يجب أن يعلموا أنه يمكن الحصول على الإصدار الحالي الآن بمساعدة أداة إنهاء. فقط فيه سنكتب:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-linux-x64-static.tar.xz

الآن عليهم فقط فك ضغط الحزمة باستخدام الأمر التالي:

tar Jxf postgrest-v6.0.2-linux-x64-static.tar.xz

بينما في الحالة الخاصة لأولئك الذين يستخدمون إصدار 64 بت من Ubuntu:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntu.tar.xz
tar Jxf postgrest-v6.0.2-ubuntu.tar.xz

أو لمن يستخدمون إصدار 32 بت من Ubuntu

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntui386.tar.xz
tar Jxf postgrest-v6.0.2-ubuntui386.tar.xz

ويمكنهم الركض مع:

./postgrest --help

بنفس الطريقة ، يتم تحضير صورة Docker ، ويمكن الحصول عليها عن طريق كتابة:

عامل ميناء سحب postgrest / postgrest

أخيرًا يمكنك الحصول على مزيد من المعلومات حول تكوينه ، من الوثائق الموجودة على موقع الويب الخاص به. الرابط هو هذا.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.