Установка v200.1.0
Особые шаги DLE API после общей установки плагина DevCraft.
Как поставить zip через менеджер плагинов DLE, скрипт архива или копирование upload/ — в общей инструкции: Установка плагинов.
Ниже — только то, что специфично для DLE API.
Требования модуля
| Компонент | Версия |
|---|---|
| DataLife Engine | ≥ 20.0 |
| PHP | ≥ 8.3 |
| DevCraft Admin | ≥ 200.4.0 |
| MySQL / MariaDB | InnoDB (Foreign Keys) |
Сначала DevCraft Admin
Установите и настройте DevCraft Admin, затем DLE API.
После установки плагина
Проверьте, что на сайте появились:
engine/inc/dleapi.php— stub админки DLEdevcraft/src/modules/DleApi/— модуль DevCraftapi/— runtime/api/v2, Fluent, Schemas, SDK- локаль
devcraft/locales/ru_RU/dleapi.xliff
Composer в api/
Зависимости API лежат в каталоге api/ (не только в devcraft/):
cd api && composer installОбщий Composer для DevCraft: Установка плагинов и Composer.
Таблицы API
Откройте модуль DLE API в DevCraft. При первом обращении Cycle создаст таблицы {prefix}_api_keys, {prefix}_api_scope, {prefix}_api_oauth_* (миграции в devcraft/src/database/migrations/). В install.xml DDL этих таблиц нет.
Дальше
- Создайте API-ключ и OAuth-клиент
- Проверьте
.env(DEMO_MODE=false, если нужны токены) - Авторизация → эндпоинты
Профиль на сайте (опционально)
Кнопка «Запросить ключ» сама не появляется. Нужны include в скине и флаги в Настройках. Теги шаблона: Шаблоны.
- Включите Показывать блок / Разрешить генерировать и задайте уровень или синхронизацию групп.
- В
userinfo.tpl(без[own-profile]):
{include file="engine/modules/devcraft/dleapi_profile.php"}- В
main.tplперед</body>:
[available=userinfo]
{include file="engine/modules/devcraft/dleapi_profile.php?focus=js"}
[/available]- Очистите кеш шаблонов. Переопределить вид: скопируйте
templates/Default/devcraft/dleapi/в свою тему.
Без шага с JS в блоке будет «DevCraftPublic недоступен». Гость чужой ключ не видит; админ на чужом профиле может одобрять заявки.
Редирект /api → /api/v2
Apache: правила уже в api/.htaccess.
nginx (фрагмент server):
location = /api {
return 308 /api/v2/;
}
location /api/v1 {
rewrite ^/api/v1/?(.*)$ /api/v2/$1 permanent;
}
location /api/v2/ {
try_files $uri /api/v2/index.php?$query_string;
}