DevCraft Документации

Начало работы v200.1.1

Что такое DLE API: REST /api/v2, ключи и OAuth, для кого, быстрый старт и карта документации.

Описание плагина

DLE API — HTTP-слой для DataLife Engine: внешние приложения, мобильные клиенты, Postman и другие сайты ходят на https://ваш-сайт/api/v2/… с пропуском Bearer. В админке DevCraft вы заводите ключи, OAuth-клиенты и уровни доступа; сам обмен данными идёт через REST.

Пакет ставится как сателлит к DevCraft Admin (нужна оболочка ≥ 200.4.1). В каталоге api/ живут Slim, OAuth2 и OpenAPI. Таблицы api_* создаёт Cycle ORM Admin при первом заходе в модуль.

Версия 200.1.1 — текущая ветка 200.* для DLE 20+. Важно: in-process SDK (DcApi) с этой версии лежит в DevCraft Admin (devcraft/src/sdk/dle/), а не в ZIP API. HTTP-контракт /api/v2 от этого не меняется; DcApi можно вызывать из PHP сайта даже без установленного DLE API.

Исходники: GitHub.

Возможности

  • REST /api/v2: новости, пользователи, плагины, универсальный CRUD /table/{имя}/, загрузка файлов, переписки, доп. поля.
  • Доступ к ресурсам только с Authorization: Bearer <access_token> (сырой ключ на /table не принимают).
  • Выдача токена: по API-ключу, логину DLE, OAuth-клиенту или классическим grant_type (код, refresh, client credentials, password).
  • Уровни доступа и синхронизация с группами DLE; заявки на ключ с публичного профиля.
  • Настройки в DevCraft: TTL, HMAC, письма, блок в профиле; флаги DEMO_MODE / DLEAPI_SECURE в корневом .env.
  • OpenAPI / Swagger и проверка в Postman; связка с XenForo (DLE как сервер или клиент).
  • На том же PHP, что сайт: DcApi из Admin — без HTTP и без Bearer (модули, хуки, сателлиты).

Для кого

Владельцы сайта и админы

Ставите Admin, затем DLE API, в панели заводите ключи и уровни, при необходимости блок «запросить ключ» в профиле. Следите за .env (DEMO_MODE=false, если нужны настоящие токены) и за правами групп. Сами URL /api/v2 «железят» разработчики интеграций.

Разработчики интеграций (HTTP)

Пишете клиент к чужому или своему сайту DLE: получаете Bearer, вызываете sugar-эндпоинты (POST /post/) или /table/…. Смотрите авторизацию, эндпоинты и OpenAPI.

Разработчики модулей на этом сайте (SDK)

Нужны новости/пользователи из PHP без HTTP — берите SDK / DcApi из Admin. DLE API как плагин для этого не обязателен; он нужен, когда снаружи должен быть именно REST.

Почему не «свой» ajax и не API v1. Один стабильный /api/v2 с OAuth и уровнями проще сопровождать, чем набор скриптов с разными ключами. v1 снят; переезд: миграция v1 → v2.

Требования

ЧтоМинимум
DataLife Engine20.0+
PHP8.3+
DevCraft Admin≥ 200.4.1
MySQL / MariaDBInnoDB (внешние ключи)
Composerв каталоге api/ (composer install)

Полный чеклист: Установка.

Дерево структуры

Корень сайта DLE после установки пакета. В скобках — зачем папка. SDK (DcApi) лежит в Admin, не в ZIP API.

composer.json — Slim, OAuth2, OpenAPI
.htaccess — Apache: /api → /api/v2
index.php — точка входа REST
routes.php — маршруты v2
manifest.php — меню, версия, AJAX
settings.schema.php — форма настроек
dleapi.php — glue → админка модуля
dleapi_profile.php — блок «запросить ключ» в профиле
.env — DEMO_MODE, DLEAPI_SECURE (корень сайта)

Кратко:

  • api/ — публичный REST и Composer HTTP-слоя.
  • devcraft/src/modules/DleApi/ — экраны ключей и OAuth в админке.
  • devcraft/src/sdk/dle/DcApi (поставляется Admin, не пакетом API).
  • engine/inc/dleapi.php + шаблоны профиля — вход DLE и публичный блок заявки.

Быстрый старт

Поставьте Admin и DLE API

Сначала DevCraft Admin, затем этот плагин. В api/ выполните composer install. Откройте модуль DLE API в админке — создадутся таблицы api_*. Подробности: Установка.

Проверьте .env

В корне сайта для рабочих токенов: DEMO_MODE=false. Иначе access_token будет null. См. Инструкция .env.

Ключ и токен

В DevCraft создайте API-ключ (и при необходимости OAuth-клиент). Обменяйте credentials на Bearer — Авторизация.

Первый запрос

Например GET /api/v2/me или список через /table/…. Как думать про адреса: Эндпоинты. Сценарии: создание новости, пользователь.

Руководства (подробнее)

РуководствоО чём
АвторизацияBearer, /me, обмен ключа на токен
OAuth-клиенты / OAuth-серверПриложения и grant’ы
ЭндпоинтыSugar vs /table/, ответы и ошибки
Инструкция .envDEMO_MODE, DLEAPI_SECURE
Новости / пользователи / плагиныПрактические HTTP-сценарии
SDKDcApi в процессе PHP (Admin)
Настройки / уровни / шаблоныПанель и публичный профиль
БезопасностьЧто закрыто и как не прострелить ногу
Postman / XenForoПроверки и соседние CMS
Миграция v1 → v2Если ещё тянется старый клиент

Разделы документации

Дальше

  1. Установить плагин и зависимости api/.
  2. Пройти быстрый старт выше.
  3. Для внешнего клиента — authendpoints; для кода на сайте — SDK.

На этой странице