كيفية تثبيت واستخدام PostgREST API: دليل المبتدئين

Ashley Goolam

Ashley Goolam

14 نوفمبر 2025

كيفية تثبيت واستخدام PostgREST API: دليل المبتدئين

Apidog للمؤسسات

النشر على الخوادم المحلية

SSO و RBAC

متوافق مع SOC 2

استكشف Apidog للمؤسسات

هل فكرت يومًا في مقدار الوقت الذي يقضيه المطورون في بناء واجهات برمجة تطبيقات RESTful فوق قواعد بيانات PostgreSQL؟ غالبًا ما يتضمن ذلك كتابة تعليمات برمجية متكررة لعمليات CRUD، والتعامل مع الاستعلامات، وضمان الأمان - وهي مهام يمكن أن تبطئ زخم مشروعك. هنا يأتي دور واجهة برمجة تطبيقات PostgREST، حيث تقدم بديلاً مبسطًا يحول قاعدة بياناتك إلى واجهة برمجة تطبيقات جاهزة للاستخدام بأقل جهد. في هذا الدليل الشامل، سنستكشف واجهة برمجة تطبيقات PostgREST بعمق، من مفاهيمها الأساسية إلى التنفيذ العملي. سواء كنت مهندسًا خلفيًا تتطلع إلى تسريع التطوير أو مطورًا متكاملًا يسعى إلى الكفاءة، فإن إتقان واجهة برمجة تطبيقات PostgREST يمكن أن يحول سير عملك.

بينما نتنقل في هذا الموضوع معًا، سأشارك رؤى مستمدة من الخبرة العملية، مع ضمان أن كل قسم يبني منطقيًا على سابقه. بحلول النهاية، ستشعر أنك مجهز لدمج واجهة برمجة تطبيقات PostgREST في مشروعك التالي. دعنا نبدأ بالأساسيات.

💡
هل تريد أداة رائعة لاختبار واجهات برمجة التطبيقات تولد وثائق API جميلة؟

هل تريد منصة متكاملة وشاملة لفريق المطورين لديك للعمل معًا بأقصى إنتاجية؟

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر أكثر معقولية بكثير!
زر

ما هي واجهة برمجة تطبيقات PostgREST؟ نظرة عامة

واجهة برمجة تطبيقات PostgREST هي أداة مستقلة تعرض قاعدة بيانات PostgreSQL الخاصة بك تلقائيًا كخدمة ويب RESTful كاملة الوظائف. تم تطويرها بواسطة Beowulf، وهي تستفيد من قوة لغة استعلام PostgreSQL (SQL) لتوليد نقاط نهاية HTTP ديناميكيًا، مما يلغي الحاجة إلى منطق مخصص من جانب الخادم في العديد من الحالات. في جوهرها، تفسر واجهة برمجة تطبيقات PostgREST مخططات قواعد البيانات والجداول وطرق العرض والإجراءات المخزنة كموارد API، مما يتيح لك إجراء عمليات الإنشاء والقراءة والتحديث والحذف (CRUD) عبر طرق HTTP القياسية مثل GET و POST و PUT و DELETE.

ما يجعل واجهة برمجة تطبيقات PostgREST جذابة بشكل خاص هو التزامها بمبادئ REST مع دمج ميزات PostgreSQL المتقدمة مثل أمان مستوى الصف (RLS) للتحكم الدقيق في الوصول. على سبيل المثال، يمكنك استعلام البيانات باستخدام عوامل التصفية والفرز والترقيم باستخدام معلمات URL - لا يلزم وجود وسيط إضافي. لا يقلل هذا النهج من تعقيد التعليمات البرمجية فحسب، بل يضمن أيضًا بقاء واجهة برمجة تطبيقاتك متزامنة مع تغييرات قاعدة البيانات تلقائيًا.

في بيئة تهيمن عليها ORMs وأطر عمل API، تبرز واجهة برمجة تطبيقات PostgREST لفلسفتها "قاعدة البيانات أولاً". وهي تدعم وثائق OpenAPI (Swagger) جاهزة للاستخدام، مما يجعلها صديقة للمطورين للدمج مع أدوات مثل Apidog أو Swagger UI. إذا كنت تدير تطبيقات كثيفة البيانات - مثل لوحات معلومات التحليلات أو الواجهات الخلفية للهواتف المحمولة أو الخدمات المصغرة - توفر واجهة برمجة تطبيقات PostgREST حلاً خفيف الوزن وعالي الأداء يتوسع مع قوة PostgreSQL. بينما نواصل، سترى كيف تسد واجهة برمجة التطبيقات هذه الفجوة بين طبقة البيانات وتطبيقات العميل بسلاسة.

postgresql

البدء باستخدام واجهة برمجة تطبيقات PostgREST: التثبيت والإعداد

يتطلب بدء عملك مع واجهة برمجة تطبيقات PostgREST وجود نسخة PostgreSQL، حيث إنها تعمل كأساس. لحسن الحظ، الإعداد مباشر، خاصة عند استخدام أدوات الحاويات مثل Docker، التي تعزل التبعيات وتبسط النشر. ابدأ بالتأكد من تثبيت Docker Desktop على جهازك - قم بتنزيله من الموقع الرسمي لنظام التشغيل الخاص بك (macOS أو Windows أو Linux).

docker desktop

بمجرد أن يصبح Docker جاهزًا، اسحب الصور الضرورية. افتح Docker Desktop، وانتقل إلى شريط البحث، وقم بتثبيت صورة "postgrest/postgrest" لخادم API نفسه. وبالمثل،

تثبيت postgrest في docker

ابحث عن "dpage/pgadmin4" وقم بتثبيته لإدارة قاعدة بيانات PostgreSQL الخاصة بك بصريًا.

تثبيت pgadmin4 في docker desktop

و "postgres:alpine" لحاوية PostgreSQL خفيفة الوزن. تشكل هذه المكونات النظام البيئي حول واجهة برمجة تطبيقات PostgREST.

لإعداد PostgreSQL يدويًا عبر الطرفية (موصى به)، قم بتنفيذ الأمر التالي لتشغيل حاوية:

docker run --name postgres-1 -e POSTGRES_PASSWORD=password -d -p 5431:5432 postgres:alpine

هنا، استبدل "password" بقيمة آمنة. يقوم الأمر بتشغيل PostgreSQL على المنفذ 5431، مع تعيينه داخليًا إلى 5432. عند النجاح، يعيد Docker معرف الحاوية (سلسلة أبجدية رقمية طويلة) - لاحظها للتحقق. قم بتشغيل docker ps لتأكيد حالة الحاوية.

التحقق من تثبيت postgres في docker

للتحقق من أدوار المستخدمين، وهي ضرورية لتكوين واجهة برمجة تطبيقات PostgREST، ادخل إلى shell الحاوية:

docker exec -it <container_id> sh

استبدل <container_id> بمعرفك أو اسم الحاوية. داخل shell، اتصل بـ PostgreSQL:

psql -U postgres -d postgres

(بافتراض أن "postgres" هو المستخدم الافتراضي؛ قم بالتعديل إذا تم تخصيصه. مثل حالتي التي تم تغييرها إلى username) ثم، قم بسرد الأدوار باستخدام \du. سيتم الإشارة إلى هذا الإخراج، بما في ذلك أسماء الأدوار مثل "postgres" أو الأدوار المخصصة، لاحقًا. يمكنك إنشاء مستخدمين إضافيين هنا وتعيين أذونات، مثل منح SELECT أو INSERT أو UPDATE أو DELETE على المخططات.

عرض اسم دور postgres docker

مع هذه المتطلبات المسبقة، أنت جاهز لتنسيق بيئتك باستخدام Docker Compose - وهو ملف YAML يحدد تطبيقات متعددة الحاويات. أنشئ ملف docker-compose.yaml في دليل مشروعك:

version: "3.9"
services:
  postgres_host:
    image: postgres:alpine
    environment:
      POSTGRES_USER: username
      POSTGRES_PASSWORD: password
      POSTGRES_DB: postgres
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5431:5432"
  pgadmin:
    image: dpage/pgadmin4
    ports:
      - "5050:80"
    depends_on:
      - postgres_host
    environment:
      PGADMIN_DEFAULT_EMAIL: postgres@pgadmin.com
      PGADMIN_DEFAULT_PASSWORD: postgres
  postgrest:
    image: postgrest/postgrest
    depends_on:
      - postgres_host
    ports:
      - "3000:3000"
    environment:
      PGRST_DB_URI: "postgres://username:password@postgres_host:5432/postgres"
      PGRST_DB_SCHEMA: "public"
      PGRST_DB_ANON_ROLE: "username"
volumes:
  pgdata:

خصص "username" و "password" لتطابق إعداداتك، واضبط PGRST_DB_ANON_ROLE على دور من إخراج \du الخاص بك للوصول المجهول. يربط هذا التكوين PostgreSQL و pgAdmin وخادم PostgREST API. احفظ الملف، ثم في الطرفية (مثل الطرفية المدمجة في VS Code، بعد تثبيت إضافة Docker)، قم بتشغيل:

docker compose up --build

يقوم هذا ببناء وتشغيل الخدمات. قم بالوصول إلى pgAdmin على http://localhost:5050 باستخدام بيانات الاعتماد الموجودة في ملف YAML، وأضف خادمًا باسم "postgres_host" مع تفاصيل الاتصال (اسم المضيف: postgres_host، المنفذ: 5432، اسم المستخدم: username، كلمة المرور: password)، ثم احفظ. لديك الآن واجهة برمجة تطبيقات PostgREST تعمل على http://localhost:3000، جاهزة لتفاعلات قاعدة البيانات.

تنفيذ حاويات docker في vs code

بناء مشروع نموذجي: اختبار واجهة برمجة تطبيقات PostgREST خطوة بخطوة

لتقدير قوة واجهة برمجة تطبيقات PostgREST حقًا، دعنا ننشئ مشروعًا عمليًا: واجهة برمجة تطبيقات بسيطة لقاعدة بيانات الموارد البشرية لإدارة سجلات الموظفين. يوضح هذا المثال عمليات CRUD على جدول "humans"، باستخدام Docker للتنسيق و Apidog لاختبار API.

الخطوة 1: إعداد بيئتك

مع تثبيت Docker Desktop وسحب الصور (PostgREST، pgAdmin4، postgres:alpine)، قم بتشغيل حاوية PostgreSQL الأولية كما هو موضح سابقًا. تحقق باستخدام docker ps ولاحظ أدوار المستخدمين عبر \du.

الخطوة 2: تجميع مكدسك

في محرر التعليمات البرمجية مثل VS Code (معززًا بإضافة Docker لإدارة الحاويات بسلاسة)، قم بإنشاء ملف docker-compose.yaml أعلاه. تأكد من تطابق أسماء الصور بدقة - يمكن أن يؤدي عدم التطابق إلى توقف التشغيل. اضبط المنافذ إذا لزم الأمر، ولكن حافظ على اتساق منفذ PostgreSQL الخارجي (5431) مع إعدادك اليدوي. قم بالتشغيل باستخدام docker compose up --build. راقب السجلات بحثًا عن الأخطاء؛ يشير التشغيل الناجح إلى ربط الخدمات بالمنافذ 5431 (قاعدة البيانات)، 5050 (pgAdmin)، و 3000 (PostgREST).

الخطوة 3: تكوين pgAdmin وإنشاء الجدول

انتقل إلى http://localhost:5050، وقم بتسجيل الدخول باستخدام PGADMIN_DEFAULT_EMAIL و PASSWORD من ملف YAML.

تسجيل الدخول إلى pgadmin4 المستضاف على docker

تحت لوحة التحكم،

إضافة خادم جديد في pg admin

أضف خادمًا جديدًا: سمّه "postgres_host"،

اسم مضيف postgres

ثم في علامة التبويب Connection، أدخل اسم المضيف: postgres_host، المنفذ: 5432، اسم المستخدم: username، كلمة المرور: password. احفظ للوصول إلى الواجهة.

حفظ تكوين قاعدة بيانات postgres الجديدة

إنشاء جدول: اذهب إلى Databases > postgres > Schemas > public > Tables، انقر بزر الماوس الأيمن على Tables، واختر Create > Table. سمّه "humans". في Columns، أضف:

إنشاء جدول
إنشاء أعمدة جديدة لجدول

انقر فوق حفظ. لإدراج البيانات، انقر بزر الماوس الأيمن على جدول "humans" > Scripts > INSERT Script. قم بالتعديل باستخدام SQL نموذجي، على سبيل المثال:

INSERT INTO public.humans (id, name, job) VALUES (1, 'Steph Curry', 'Pro Basketball Player');

نفذ لحفظ السجل.

تنفيذ نص برمجي

الخطوة 4: التحقق من توفر واجهة برمجة تطبيقات PostgREST

افتح http://localhost:3000 في متصفحك. يجب أن ترى وثيقة مواصفات Swagger 2.0 تسرد الموارد مثل /humans - تأكيدًا على أن واجهة برمجة تطبيقات PostgREST تعمل وتدرك المخطط.

مواصفات swagger 2.0

الخطوة 5: الاختبار باستخدام Apidog

شغل Apidog، أنشئ مشروعًا جديدًا، وأضف طلب GET إلى http://localhost:3000/humans (استبدل "humans" باسم جدولك). أرسل الطلب؛ سيعيد JSON مثل:

[
  {
    "id": 1,
    "name": "Steph Curry",
    "job": "Pro Basketball Player"
  }
]
إجراء طلب GET في apidog باستخدام postgrest

للاستعلام، أضف معلمة استعلام: المفتاح "name"، القيمة "eq.Steph Curry" (حيث تشير "eq" إلى المساواة). يقوم هذا بتصفية السجلات المطابقة؛ تؤدي عدم المطابقة إلى مصفوفات فارغة.

الاختبار باستخدام postgrest ببيانات خاطئة
استخدام بيانات خاطئة لإجراء بحث
استخدام البيانات الصحيحة لإجراء بحث في apidog باستخدام postgrest api
استخدام المعلومات الصحيحة لإجراء بحث

الخطوة 6: استكشاف عمليات CRUD

تتألق واجهة برمجة تطبيقات PostgREST في عمليات CRUD الكاملة. لـ POST (إنشاء)، استخدم نص Apidog كـ JSON: {"name": "New Employee", "job": "Developer"} إلى http://localhost:3000/humans. يقوم PUT بالتحديث عبر http://localhost:3000/humans?id=eq.1 ببيانات مُحدّثة. يستخدم DELETE http://localhost:3000/humans?id=eq.1. تعمل الفلاتر المتقدمة مثل الفرز (order=name.asc) أو الحدود (limit=5) على تحسين قابلية الاستخدام. للحصول على أمثلة شاملة، راجع الوثائق الرسمية على https://docs.postgrest.org/en/v14/references/api/tables_views.html.

يوضح هذا المشروع، الذي يستغرق أقل من ساعة، براعة واجهة برمجة تطبيقات PostgREST في النماذج الأولية السريعة. قم بتوسيع نطاقه عن طريق إضافة سياسات RLS في PostgreSQL للوصول الآمن والقائم على الأدوار.

الأسئلة المتكررة

س1. ما هي متطلبات النظام لتشغيل واجهة برمجة تطبيقات PostgREST؟

ج: تتطلب واجهة برمجة تطبيقات PostgREST إصدار PostgreSQL 9.4 أو أحدث، مع توصية بـ Docker للإعدادات المعبأة في حاويات. تعمل بكفاءة على أجهزة متواضعة، وتحتاج إلى 512 ميجابايت على الأقل من ذاكرة الوصول العشوائي للعمليات الأساسية.

س2. هل يمكن لواجهة برمجة تطبيقات PostgREST التعامل مع الاستعلامات المعقدة التي تتجاوز عمليات CRUD الأساسية؟

ج: نعم، إنها تدعم قدرات SQL الكاملة لـ PostgreSQL عبر استدعاءات RPC المضمنة وطرق العرض، مما يسمح بالربط والتجميع والوظائف المخصصة التي يتم عرضها كنقاط نهاية.

س3. كيف تضمن واجهة برمجة تطبيقات PostgREST أمان البيانات؟

ج: تتكامل بشكل طبيعي مع أمان مستوى الصف (Row-Level Security) والأذونات القائمة على الأدوار في PostgreSQL، وتفرض ضوابط الوصول على مستوى قاعدة البيانات دون نقاط ضعف من جانب API.

س4. هل واجهة برمجة تطبيقات PostgREST مناسبة لبيئات الإنتاج؟

ج: بالتأكيد، مع ميزات مثل مصادقة JWT، وعزل المخطط، والتوسع الأفقي عبر مثيلات متعددة. راقب الأداء وطبق RLS للامتثال.

س5. كيف أدمج واجهة برمجة تطبيقات PostgREST مع أطر عمل الواجهة الأمامية؟

ج: استخدم عملاء HTTP مثل Axios أو Fetch؛ قم بإنشاء أنواع TypeScript من مواصفات OpenAPI لسلامة النوع في تطبيقات React أو Vue أو Angular.

الخاتمة

في ختام استكشافنا، تظهر واجهة برمجة تطبيقات PostgREST كحل أنيق لتطوير يعتمد على قواعد البيانات، وتحويل نقاط قوة PostgreSQL إلى خدمات ويب سهلة الوصول. من الإعداد السهل إلى الاستعلامات المتطورة، تمكنك من تقديم واجهات برمجة تطبيقات قوية بأقل تكلفة. أشجعك على تكرار المشروع النموذجي وتجربة المزيد - ربما توسيعه بالمصادقة. مع تطور تطبيقاتك، ستثبت واجهة برمجة تطبيقات PostgREST أنها حليف لا غنى عنه في الحفاظ على المرونة والموثوقية.

💡
هل تريد أداة رائعة لاختبار واجهات برمجة التطبيقات تولد وثائق API جميلة؟

هل تريد منصة متكاملة وشاملة لفريق المطورين لديك للعمل معًا بأقصى إنتاجية؟

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر أكثر معقولية بكثير!
زر

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات