---
url: 'https://dxpr.com/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/dokumentacja-api'
title: 'Dokumentacja API | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T11:38:14+00:00'
updated: '2026-10-24T19:36:26+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  Usługi PHP, punkty rozszerzeń JavaScript i trasy
  definiowane przez kreator DXPR. ID usług pochodzą z
  dxpr_builder.services.yml, trasy z dxpr_builder.routing.yml.
  Szczegóły żądań i odpowiedzi każdej trasy znajdziesz w
  punktach końcowych API.
tags:
  - 'Architecture and APIs'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T19:36:26+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Dokumentacja API'
      description: |-
        Usługi PHP, punkty rozszerzeń JavaScript i trasy
        definiowane przez kreator DXPR. ID usług pochodzą z
        dxpr_builder.services.yml, trasy z dxpr_builder.routing.yml.
        Szczegóły żądań i odpowiedzi każdej trasy znajdziesz w
        punktach końcowych API.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T11:38:14+0000'
      dateModified: '2026-10-24T19:36:26+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/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/dokumentacja-api'
      articleSection: 'Architektura i API'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/dokumentacja-api'
      description: |-
        Usługi PHP, punkty rozszerzeń JavaScript i trasy
        definiowane przez kreator DXPR. ID usług pochodzą z
        dxpr_builder.services.yml, trasy z dxpr_builder.routing.yml.
        Szczegóły żądań i odpowiedzi każdej trasy znajdziesz w
        punktach końcowych API.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: 'Strona Główna'
            item: 'https://dxpr.com/pl'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: pl
---
[Centrum pomocy](/pl/hc)/[Dokumentacja](/pl/hc/dokumentacja) /[Poznaj DXPR Builder](/pl/hc/documentation/learn-dxpr-builder) /[Rozszerzenia](/pl/hc/documentation/learn-dxpr-builder/extend) /[Architektura i API](/pl/hc/documentation/learn-dxpr-builder/extend/architecture) # Dokumentacja API.

 Poznaj DXPR BuilderRozszerzeniaArchitektura i API

   ## W tym przewodniku

Usługi PHP, punkty rozszerzeń JavaScript i trasy definiowane przez kreator DXPR. ID usług pochodzą z `dxpr_builder.services.yml`, trasy z `dxpr_builder.routing.yml`. Szczegóły żądań i odpowiedzi każdej trasy znajdziesz w [punktach końcowych API](/pl/hc/dokumentacja/nauka-dxpr-builder/referencja/punkty-koncowe-api).

## Usługi PHP

| ID usługi | Klasa (w `src/`) | Przeznaczenie |
|---|---|---|
| `dxpr_builder.service` | `Service\DxprBuilderService` | Przygotowuje treści kreatora do wyniku, obsługuje tokeny ścieżek, buduje rejestr zestawów ikon |
| `dxpr_builder.license_service` | `Service\DxprBuilderLicenseService` | Status licencji, użytkownicy rozliczani, synchronizacja redaktorów z DXPR |
| `dxpr_builder.key_service` | `Service\DxprBuilderKeyService` | Odczytuje i przechowuje klucz produktu |
| `dxpr_builder.jwt_decoder` | `Service\DxprBuilderJWTDecoder` | Dekoduje ładunek klucza produktu |
| `dxpr_builder.user_settings` | `Service\UserSettings` | Własne ustawienia edytora każdego redaktora, trzymane w danych użytkownika |
| `dxpr_builder.content_lock` | `Service\ContentLock` | Zapisuje, który użytkownik edytuje rewizję encji |
| `dxpr_builder.content_migration` | `Service\ContentMigrationService` | Uruchamia migracje treści; zbiera usługi otagowane `dxpr_builder.content_migration` |
| `dxpr_builder.profile_handler` | `Service\Handler\ProfileHandler` | Zamienia profil w ustawienia edytora |
| `dxpr_builder.handler.block` | `Service\Handler\BlockHandler` | Renderuje bloki Drupala umieszczone jako elementy |
| `dxpr_builder.handler.view` | `Service\Handler\ViewHandler` | Renderuje wyświetlenia widoków umieszczone jako elementy |
| `dxpr_builder.template_image_validator` | `Service\TemplateImageValidator` | Waliduje obrazy podglądu szablonów |
| `dxpr_builder.rl_variant.extractor`, `dxpr_builder.rl_variant.registrar` | `RlIntegration\Service\*` | Warianty testów A/B; nieaktywne bez modułu RL |
| `dxpr_builder.rl_sort.extractor`, `dxpr_builder.rl_sort.registrar` | `RlIntegration\Service\*` | Eksperymenty inteligentnego sortowania; nieaktywne bez modułu RL |
| `logger.channel.dxpr_builder` | główny kanał loggera | Kanał dziennika `dxpr_builder` |

### DxprBuilderServiceInterface

Implementowane przez `dxpr_builder.service`. Metody, które najpewniej wywołasz:

- `insertBaseTokens($content)`: zastępuje bazowy URL witryny, katalog plików i ścieżkę modułu tokenami. Edytor przechowuje treści w tej formie.
- `replaceBaseTokens(&$content): void`: rozwija tokeny z powrotem w URL-e dla bieżącego środowiska.
- `stripHtmlElementPersists(string $markup): string`: usuwa atrybuty `data-az-persist`. Uruchom na znacznikach zapisanych poza edytorem; edytor przebudowuje je przy wczytaniu.
- `getCmsElementNames()`: bloki i wyświetlenia widoków oferowane jako elementy, buforowane.
- `getIconSets(): array`: rejestr zestawów ikon po wykryciu YAML i `hook_dxpr_builder_icon_sets_alter()`.

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

```

### DxprBuilderLicenseServiceInterface

Implementowane przez `dxpr_builder.license_service`.

- `isBillableUser(?AccountInterface $account = NULL): bool`: TRUE dla użytkownika 1 i dla aktywnych kont z `edit with dxpr builder`, niewykluczonych z edycji w kreatorze DXPR.
- `getLicenseInfo()`: status licencji z serwera licencyjnego DXPR, buforowany. Bez klucza produktu zwraca plan darmowy: jeden użytkownik i 100 elementów treści.
- `syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void`: wysyła redaktorów witryny do DXPR. `$operation` to jedna ze stałych interfejsu `DXPR_USER_SYNC_OPERATION` (`sync`), `DXPR_USER_ADD_OPERATION` (`add`) albo `DXPR_USER_REMOVE_OPERATION`(`remove`).

### DxprBuilderKeyService

- `getApiKey(): ?string`: klucz produktu. Gdy ustawienie `api_key_storage`to `key`, odczytuje encję Key nazwaną w `key_provider`; w przeciwnym razie odczytuje `json_web_token`.
- `setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void`: przechowuje klucz w konfiguracji albo w encji Key.

### DxprBuilderJWTDecoder

- `decodeJwt(string $access_token)`: zwraca oświadczenia `sub`, `scope` i `dxpr_tier` klucza produktu, każde NULL, gdy tokenu nie da się odczytać. Wynik jest buforowany dla tokenu.

## Punkty rozszerzeń JavaScript

Skrypty edytora współdzielą dwie tablice na `window.dxprBuilder`. Wepchnij własne obiekty na nie między skryptem tworzącym tablicę a `dxpr_builder.js`, który odczytuje je raz przy uruchomieniu.

| Tablica | Tworzona przez | Co `dxpr_builder.js` z nią robi |
|---|---|---|
| `dxpr_param_types` | `dxpr_param_types.js` | Rejestruje każdy obiekt jako typ parametru przez `register_param_type()` |
| `dxpr_elements` | `dxpr_elements.js` | `create_dxpr_elements()` rejestruje każdą definicję przez `register_animated_element()` i konwertuje jej `params` przez `make_param_type()` |

Typy parametrów rejestrowane przez moduł to `boxmodel`, `checkbox`, `checkboxes`, `colorpicker`, `datetime`, `dropdown`, `dxb_slider`, `html`, `icon`, `image`, `images`, `link`, `links`, `numericfield`, `row_layout`, `saved_datetime`, `social_links`, `textarea`, `textfield` i `video`. Parametr z nieznanym `type` renderuje się jako zwykłe pole tekstowe.

[Własne elementy](/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/wlasne-elementy) pokazują kompletną definicję elementu i jak ją wczytać we właściwym momencie.

## Trasy edytora

Legenda dostępu: **billable** to kontrola `_dxpr_builder_billable_user`(użytkownik 1 albo aktywne konto z `edit with dxpr builder`, niewykluczone); **CSRF** to `_csrf_token`.

| Ścieżka | Nazwa trasy | Metody | Dostęp |
|---|---|---|---|
| `/dxpr_builder/ajax` | `dxpr_builder.ajax_callback` | dowolne | 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` | dowolne | billable |
| `/dxpr_builder/ajax/help_link_validator` | `dxpr_builder.ajax_help_link_validator` | dowolne | billable |
| `/dxpr_builder/media-library` | `dxpr_builder.media_library` | dowolne | `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 |

## Trasy administracyjne

Wszystkie strony administracyjne znajdują się w **DXPR Studio &gt; DXPR Builder**. Kolumna kart pokazuje etykietę w menu administracyjnym.

| Ścieżka | Karta | Uprawnienie |
|---|---|---|
| `/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` | General Settings | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/ai_settings` | AI | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/content` | Content Items | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/migration-status` | Migrations (under Content Items) | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/page_template` | Page Templates | `administer site configuration` |
| `/admin/dxpr_studio/dxpr_builder/user_licenses` | User Licenses | `administer dxpr builder configuration` |
| `/admin/dxpr_studio/dxpr_builder/profile` | User Profiles | `administer dxpr_builder_profile` |
| `/admin/dxpr_studio/dxpr_builder/user_templates` | User Templates | `administer site configuration` |