# الطلبات

### إجراء طلب

#### المُضيف

يكون المُضيف لطلبات واجهة برمجة التطبيق الويب v1 دائمًا `https://api.iafcertsearch.org/api/client/v1`

{% hint style="info" %}
يجب أن تتم جميع الطلبات عبر بروتوكول HTTPS. لا يدعم واجهة برمجة التطبيق البروتوكول HTTP.
{% endhint %}

#### رأس التفويض

يجب أن تقدم رأس تفويض كما هو موضح في [المصادقة](https://github.com/QualityTrade/iaf-docs-api-developer-guide-ar/blob/main/api-integration/broken-reference/README.md).

#### أفعال HTTP

* `GET` الحصول على مورد أو مجموعة من الموارد
* `POST` إنشاء مورد جديد
* `PUT` تحديث مورد موجود
* `DELETE` حذف مورد موجود
* `OPTIONS` عرض الأفعال المسموح بها ضد مورد محدد

#### رأس القبول

توفر واجهة برمجة التطبيق الردود بتنسيق JSON. تحتاج في الوقت الحالي إلى توفير رأس القبول، ولكن قد تحتاج إليه في المستقبل. إذا لم يتم تعيينه، فسوف تستخدم واجهة البرمجة التطبيقية `application/json`.

```http
GET https://api.iafcertsearch.org/api/client/v1/endpoint HTTP/1.1
Accept: application/json
```

#### مجموعات البيانات

عندما ترسل مجموعة من البيانات في طلب `GET`، ستتضمن المعلمة أكثر من مرة في عنوان URL. لا يحتاج اسم المعلمة أقواسًا مربعة.

```http
GET https://api.iafcertsearch.org/api/client/v1/endpoint?parameter=data1&parameter=data2 HTTP/1.1
```

### تنسيق طلبك

#### جسم الطلب

عند إرسال البيانات إلى مورد ما عبر طلب `POST` أو `PUT`، يجب أن تقدم البيانات في تنسيق JSON.

```http
POST https://api.iafcertsearch.org/api/client/v1/example/ HTTP/1.1
Content-Type: application/json
```

```json
{
  "name": "اسم مثال جديد"
}
```

#### الترقيم الصفحي

تسمح بعض الموارد في طلبات `GET` باسترداد المعلومات بشكل دُفعات. سنقدم معلمات الاستعلام في وثائق المورد عندما تكون ذلك ملائمًا.

عند طلب عناصر متعددة، ستُعيَّن الحد الافتراضي للطلبات إلى `20` عنصرًا. يمكنك تحديد حد مختلف باستخدام معلمة `limit` عندما يكون ذلك ضروريًا. أعلى قيمة نقبلها لمعلمة `limit` هي `100`.

يمكنك أن ترى في الأسفل مثالًا لطلب واجهة برمجة التطبيق التي تُسترد أول 100 سجلٍ كما هو محدد بواسطة معلمتي `limit=100` و `offset=0`.

لاسترداد دُفعة أخرى من السجلات، قُم بزيادة قيمة المعلمة `offset` بمقدار `1`.

```http
GET https://api.iafcertsearch.org/api/client/v1/resource?limit=100&offset=0 HTTP/1.1
```

### الطلبات الناجحة

| **الفعل** | **كائن المورد المُرجَع**                         |
| --------- | ------------------------------------------------ |
| GET       | يُرجع كائن مورد واحد أو مجموعة من كائنات الموارد |
| PATCH     | يُرجع كائن المورد المُحدَّث                      |
| PUT       | يُرجع كائن المورد المُحدَّث                      |
| DELETE    | لا يتم إرجاع أي محتوى                            |
| POST      | يُرجع كائن المورد الجديد                         |
