---
url: 'https://dxpr.com/ar/hc/documentation/learn-dxpr-builder/development/api'
title: 'مرجع API | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T01:25:28+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  خدمات PHP ونقاط توسعة JavaScript والمسارات التي
  يعرّفها DXPR Builder. تأتي معرّفات الخدمات من
  dxpr_builder.services.yml، والمسارات من dxpr_builder.routing.yml.
  ولتفاصيل الطلب والاستجابة لكل مسار، انظر
  نقاط نهاية API.
tags:
  - 'Architectuur en API’s'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T09:09:48+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'مرجع API'
      description: |-
        خدمات PHP ونقاط توسعة JavaScript والمسارات التي
        يعرّفها DXPR Builder. تأتي معرّفات الخدمات من
        dxpr_builder.services.yml، والمسارات من dxpr_builder.routing.yml.
        ولتفاصيل الطلب والاستجابة لكل مسار، انظر
        نقاط نهاية API.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T01:25:28+0000'
      dateModified: '2026-10-24T09:09:48+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/ar/hc/documentation/learn-dxpr-builder/development/api'
      articleSection: 'Architectuur en API’s'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/ar/hc/documentation/learn-dxpr-builder/development/api'
      description: |-
        خدمات PHP ونقاط توسعة JavaScript والمسارات التي
        يعرّفها DXPR Builder. تأتي معرّفات الخدمات من
        dxpr_builder.services.yml، والمسارات من dxpr_builder.routing.yml.
        ولتفاصيل الطلب والاستجابة لكل مسار، انظر
        نقاط نهاية API.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: الرئيسية
            item: 'https://dxpr.com/ar'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: ar
---
[Help Center](/ar/hc)/[Documentation](/ar/hc/documentation) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Extend](/hc/documentation/learn-dxpr-builder/extend) /[Architectuur en API’s](/hc/documentation/learn-dxpr-builder/extend/architecture) # مرجع API.

 Learn DXPR BuilderExtendArchitectuur en API’s

   ## In this guide

خدمات PHP ونقاط توسعة JavaScript والمسارات التي يعرّفها DXPR Builder. تأتي معرّفات الخدمات من `dxpr_builder.services.yml`، والمسارات من `dxpr_builder.routing.yml`. ولتفاصيل الطلب والاستجابة لكل مسار، انظر [نقاط نهاية API](/ar/hc/documentation/learn-dxpr-builder/reference/api-endpoints).

## خدمات PHP

| معرّف الخدمة | الصنف (في `src/`) | الغرض |
|---|---|---|
| `dxpr_builder.service` | `Service\DxprBuilderService` | يُعدّ محتوى المنشئ للمخرجات ويعالج رموز المسارات ويبني سجل مجموعات الأيقونات |
| `dxpr_builder.license_service` | `Service\DxprBuilderLicenseService` | حالة الترخيص والمستخدمون المُحاسَبون ومزامنة المحرّر مع DXPR |
| `dxpr_builder.key_service` | `Service\DxprBuilderKeyService` | يقرأ مفتاح المنتج ويخزّنه |
| `dxpr_builder.jwt_decoder` | `Service\DxprBuilderJWTDecoder` | يفك ترميز حمولة مفتاح المنتج |
| `dxpr_builder.user_settings` | `Service\UserSettings` | إعدادات المحرّر الخاصة بكل محرّر، محفوظة في بيانات المستخدم |
| `dxpr_builder.content_lock` | `Service\ContentLock` | يسجّل أي مستخدم يحرّر مراجعة كيان |
| `dxpr_builder.content_migration` | `Service\ContentMigrationService` | يشغّل عمليات ترحيل المحتوى؛ ويجمع الخدمات الموسومة `dxpr_builder.content_migration` |
| `dxpr_builder.profile_handler` | `Service\Handler\ProfileHandler` | يحوّل الملف إلى إعدادات محرّر |
| `dxpr_builder.handler.block` | `Service\Handler\BlockHandler` | يعرض كتل Drupal الموضوعة كعناصر |
| `dxpr_builder.handler.view` | `Service\Handler\ViewHandler` | يعرض عروض Views الموضوعة كعناصر |
| `dxpr_builder.template_image_validator` | `Service\TemplateImageValidator` | يتحقق من صور معاينة القوالب |
| `dxpr_builder.rl_variant.extractor`، `dxpr_builder.rl_variant.registrar` | `RlIntegration\Service\*` | نسخ اختبار A/B؛ غير نشطة دون وحدة RL |
| `dxpr_builder.rl_sort.extractor`، `dxpr_builder.rl_sort.registrar` | `RlIntegration\Service\*` | تجارب الفرز الذكي؛ غير نشطة دون وحدة RL |
| `logger.channel.dxpr_builder` | قناة مسجّل النواة | قناة السجل `dxpr_builder` |

### DxprBuilderServiceInterface

تطبّقها `dxpr_builder.service`. والطرق التي يُرجَّح أن تستدعوها:

- `insertBaseTokens($content)`: يستبدل عنوان URL الأساسي لهذا الموقع ودليل الملفات ومسار الوحدة برموز. فيخزّن المحرّر المحتوى بهذه الصيغة.
- `replaceBaseTokens(&$content): void`: يوسّع الرموز مجددًا إلى عناوين URL للبيئة الحالية.
- `stripHtmlElementPersists(string $markup): string`: يزيل سمات `data-az-persist`. شغّلوه على وسوم مكتوبة خارج المحرّر؛ فيعيد المحرّر بناءها عند التحميل.
- `getCmsElementNames()`: الكتل وعروض Views المعروضة كعناصر، مخزّنة مؤقتًا.
- `getIconSets(): array`: سجل مجموعات الأيقونات بعد اكتشاف YAML و`hook_dxpr_builder_icon_sets_alter()`.

```php
$markup = \Drupal::service('dxpr_builder.service')->insertBaseTokens($html);

```

### DxprBuilderLicenseServiceInterface

تطبّقها `dxpr_builder.license_service`.

- `isBillableUser(?AccountInterface $account = NULL): bool`: القيمة TRUE للمستخدم 1 وللحسابات النشطة ذات `edit with dxpr builder` غير المستبعدة من تحرير DXPR Builder.
- `getLicenseInfo()`: حالة الترخيص من خادم تراخيص DXPR، مخزّنة مؤقتًا. ودون مفتاح منتج تعيد الفئة المجانية: مستخدم واحد و100 عنصر محتوى.
- `syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void`: ترسل محرّري هذا الموقع إلى DXPR. و`$operation` أحد ثوابت الواجهة `DXPR_USER_SYNC_OPERATION` (`sync`) أو `DXPR_USER_ADD_OPERATION` (`add`) أو `DXPR_USER_REMOVE_OPERATION` (`remove`).

### DxprBuilderKeyService

- `getApiKey(): ?string`: مفتاح المنتج. عندما يكون إعداد `api_key_storage` هو `key`، يقرأ كيان Key المُسمّى في `key_provider`؛ وإلا قرأ `json_web_token`.
- `setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void`: يخزّن المفتاح في الإعدادات أو في كيان Key.

### DxprBuilderJWTDecoder

- `decodeJwt(string $access_token)`: يعيد مطالبات `sub` و`scope` و`dxpr_tier` الخاصة بمفتاح المنتج، كل منها NULL عندما يتعذّر قراءة الرمز. وتُخزَّن النتيجة مؤقتًا لكل رمز.

## نقاط توسعة JavaScript

تتشارك نصوص المحرّر مصفوفتين على `window.dxprBuilder`. ادفعوا كائناتكم الخاصة عليهما بين النص الذي يُنشئ المصفوفة و`dxpr_builder.js` الذي يقرؤهما مرة عندما يعمل.

| المصفوفة | يُنشئها | ما يفعله `dxpr_builder.js` بها |
|---|---|---|
| `dxpr_param_types` | `dxpr_param_types.js` | يسجّل كل كائن كنوع معامل مع `register_param_type()` |
| `dxpr_elements` | `dxpr_elements.js` | `create_dxpr_elements()` تسجّل كل تعريف مع `register_animated_element()` وتحوّل `params` الخاصة به مع `make_param_type()` |

أنواع المعاملات التي تسجّلها الوحدة هي `boxmodel` و`checkbox` و `checkboxes` و`colorpicker` و`datetime` و`dropdown` و`dxb_slider` و `html` و`icon` و`image` و`images` و`link` و`links` و`numericfield` و `row_layout` و`saved_datetime` و`social_links` و`textarea` و `textfield` و`video`. والمعامل ذو `type` غير معروف يُعرض كحقل إدخال نص عادي.

[العناصر المخصصة](/ar/hc/documentation/learn-dxpr-builder/development/custom-elements) تعرض تعريف عنصر كاملًا وكيفية تحميله في اللحظة المناسبة.

## مسارات المحرّر

دليل الوصول: **مُحاسَب** هو الفحص `_dxpr_builder_billable_user`(المستخدم 1، أو حساب نشط يملك `edit with dxpr builder`وغير مستبعد)؛ و**CSRF** هو `_csrf_token`.

| المسار | اسم المسار | الطرق | الوصول |
|---|---|---|---|
| `/dxpr_builder/ajax` | `dxpr_builder.ajax_callback` | any | billable, CSRF |
| `/dxpr_builder/ajax/file_upload` | `dxpr_builder.ajax_file_upload_callback` | POST, DELETE | billable, CSRF |
| `/dxpr_builder/ajax/ai/chat` | `dxpr_builder.ai_chat` | POST | `edit with dxpr builder`, billable, CSRF |
| `/dxpr_builder/ajax/ai/image` | `dxpr_builder.ai_image` | POST | `edit with dxpr builder`, billable, CSRF |
| `/dxpr_builder/ajax/ai/image/edit` | `dxpr_builder.ai_image_edit` | POST | `edit with dxpr builder`, billable, CSRF |
| `/dxpr_builder/csrf` | `dxpr_builder.csrf_refresh` | any | billable |
| `/dxpr_builder/ajax/help_link_validator` | `dxpr_builder.ajax_help_link_validator` | any | billable |
| `/dxpr_builder/media-library` | `dxpr_builder.media_library` | any | `view media` |
| `/dxpr_builder/entity-link-suggestions` | `dxpr_builder.entity_link_suggestions` | GET | `edit with dxpr builder`, CSRF |
| `/dxpr_builder/user-settings` | `dxpr_builder.user_settings` | POST | `edit with dxpr builder`, CSRF |

## مسارات الإدارة

تقع كل صفحات الإدارة تحت **DXPR Studio &gt; DXPR Builder**. ويعرض عمود التبويب التسمية في قائمة الإدارة.

| المسار | التبويب | الصلاحية |
|---|---|---|
| `/admin/dxpr_studio` | DXPR Studio | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder` | DXPR Builder | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/settings` | الإعدادات العامة | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/ai_settings` | الذكاء الاصطناعي | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/content` | عناصر المحتوى | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/migration-status` | عمليات الترحيل (ضمن عناصر المحتوى) | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/page_template` | قوالب الصفحات | `administer site configuration` |
| `/admin/dxpr_studio/dxpr_builder/user_licenses` | تراخيص المستخدمين | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/profile` | ملفات تعريف المستخدم | `administer dxpr_builder_profile` |
| `/admin/dxpr_studio/dxpr_builder/user_templates` | قوالب المستخدم | `administer site configuration` |