---
title: واجهة وصول موحّدة
section: Concepts
weight: 5
description: واجهة REST API ولغة الاستعلام الشاملتان اللتان تمنحان التطبيقات طريقة واحدة وموحّدة للوصول إلى بيانات النظام ووظائفه.
related:
  - integration
  - architecture/abstract-data-layer
  - basic-modules/modules
  - data-representation/components
---

import Alert from '@/components/docs/Alert.astro';

## واجهة REST API الشاملة

يطبّق النظام واجهة REST API شاملة توفّر تفاعلاً متّسقاً بين مختلف الأنظمة والتطبيقات والأجهزة. وهي تجرّد تفاصيل التنفيذ وتوفّر طريقة موحّدة للوصول إلى بيانات النظام ووظائفه.

تتميّز خدمة REST API بالخصائص التالية في التعامل مع البيانات:

- **التجانس**: تتّبع جميع الطلبات والاستجابات الصيغة نفسها.
- **قابلية التوسّع**: تدعم عدداً كبيراً من الأجهزة والمستخدمين.
- **الأمان**: توفّر المصادقة والتفويض وتشفير البيانات.
- **التوثيق**: لها توثيق واضح للمطوّرين.

تبسّط الخدمة بدرجة كبيرة العمل اللاحق مع البيانات:

- **تبسيط التكامل**: يمكن للأنظمة والأجهزة المختلفة أن تتفاعل عبر واجهة واحدة.
- **تجريد العتاد**: لا تعتمد التطبيقات على أجهزة أو بروتوكولات بعينها.
- **الإدارة المركزية**: تمرّ جميع طلبات البيانات عبر نقطة دخول واحدة.
- **المرونة**: يمكن إضافة ميزات جديدة أو تعديل الميزات القائمة بسهولة.

<Alert type="note">خدمة REST API موصوفة بمزيد من التفصيل في قسم [مرجع الـ API](/ar/api/v1).</Alert>

#### مثال على طلب عبر واجهة REST API الشاملة

طلب البيانات:

```bash title="Request example"
GET /api/v1/channel_data?equipment_id=1&archive_type=daily&channel_id=3
```

الاستجابة:

```json title="Response example"
[
  {
    "id": 123,
    "equipment_id": 1,
    "seance_id": 2,
    "channel_id": 3,
    "archive_type_id": 4,
    "value": 42.5,
    "event_time": 1739950861
  }
]
```

### مزايا واجهة REST API الشاملة

تُعدّ خدمة REST API أداة قوية تنشئ واجهة موحّدة للوصول إلى البيانات.

وهي تتيح لك:

- التجريد عن الأجهزة والتقنيات المحدّدة.
- ضمان الاتّساق وسهولة الاستخدام.
- تبسيط تكامل الأنظمة والأجهزة الجديدة.

## لغة الاستعلام

اعتماداً على هذه الواجهة الموحّدة للوصول إلى البيانات، يستخدم النظام لغة استعلام تتيح للمستخدمين والتطبيقات التفاعل مع قاعدة البيانات لاسترجاع المعلومات أو تعديلها أو إدارتها. وتوفّر لغة الاستعلام الشاملة الاتّساق وسهولة الاستخدام وإمكانات قوية لمعالجة البيانات.

توفّر لغة الاستعلام الإمكانات التالية:

- **تبسيط معالجة البيانات**: يمكن للمستخدمين استرجاع البيانات دون كتابة شيفرة معقّدة.
- **التوحيد القياسي**: لغة واحدة لجميع عمليات البيانات.
- **المرونة**: إمكانية تشغيل الاستعلامات البسيطة والمعقّدة على حدّ سواء.
- **التكامل**: تتكامل بسهولة مع مختلف الأنظمة والتطبيقات.

### أمثلة على لغات الاستعلام المستخدمة في النظام

#### SQL (لغة الاستعلام البنيوية)

يستخدم _نظام إدارة قواعد البيانات PostgreSQL_ لغة الاستعلام _SQL_ للعمل مع البيانات. وهي تدعم عمليات معالجة البيانات الأساسية.

مثال على استعلام SQL لاسترجاع البيانات:

```sql title="example.sql"
SELECT id, channel_id, value
FROM channel_data
WHERE equipment_id = 1 AND archive_type_id = 4;
```

#### واجهة REST مع معاملات

تطبّق واجهة _REST API_ الشاملة واجهة _REST_ مزوّدة بمعاملات كجزء من تفاعلها مع البيانات. وهذا يتيح لواجهة _API_ استخدام معاملات الاستعلام لتصفية البيانات.

على سبيل المثال:

```bash title="Request example"
GET /api/v1/channel_data?equipment_id=1&channel_id=101
```

#### واجهة استعلام Active Record

يطبّق إطار العمل _Ruby on Rails_ آلية _Active Record (واجهة استعلام Active Record)_، التي تتيح لك الاستعلام من قواعد البيانات دون استخدام SQL.

وفيما يلي مثال على استعلام _Active Record_ لاسترجاع البيانات:

```ruby title="Active record example"
ChannelDatum.where(equipment_id: 1, archive_type_id: 4)
```
