Заголовки
Новости еще не были созданы.
DLE API

Модуль DLE API 200.1.0

Полный переход с API v1 (Slim + Illuminate Capsule, X-Api-Key) на API v2.

Добавлено​

  • OAuth2 Authorization Server: authorize, token, revoke, userinfo; AS discovery (/.well-known/oauth-authorization-server)
  • Три типа выдачи токена (credential_type): api_key, auth (логин/пароль DLE), oauth_client (client_credentials)
  • Bearer-only доступ ко всем ресурсам; GET /me и GET /oauth/userinfo для identity
  • Авторизация через сессию DLE — GET /oauth/authorize с редиректом на форму входа DLE
  • Проверка raw API-ключа — GET /key/check (единственный эндпоинт с raw key вместо Bearer)
  • Уровни доступа с синхронизацией по группам DLE, заявки на ключ, профиль (public AJAX)
  • CRUD по таблицам — GET/POST/PUT/DELETE /table/{name} с интроспекцией + TableScopeGuard
  • Ресурсы: GET/POST /post, POST /user, POST /usergroup, POST /plugin, GET /conversations
  • Доп. поля (xfields): GET/POST/PUT/PATCH/DELETE /xfields/{scope}/{name}, encode
  • Загрузка файлов — POST /upload через штатный пайплайн DLE
  • Каталог Schema таблиц DLE (~40 схем) в api/src/Schema/
  • OpenAPI — swagger-php 5 с PHP-атрибутами; генерация через composer openapi
  • DEMO_MODE / DLEAPI_SECURE из .env
  • SDK facades: DcApi::news(), user(), comment(), conversation(), plugin(), file(), staticPage(), schema()
  • Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray)
  • Админ-модуль DleApi для DevCraft Admin: ключи, OAuth-клиенты, уровни доступа, настройки, changelog
  • Интеграционные тесты (PHPUnit 12 + Guzzle 8) — 53 теста для всех эндпоинтов
  • CI: Composer check, Dependabot auto-merge, composer update workflow (ежемесячно)


Изменено​

  • Совместимость с DLE 20.0 (xfields.json, dual category, conversations)
  • Таблицы создаются Cycle-миграциями DevCraft, а не DDL в install.xml
  • Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2


Удалено​

  • API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён
  • Приём сырого API-ключа как Bearer на ресурсах /table
  • [FIX] Исправление вывода множества записей при запросе метода GET
  • [UPDATE] Обновлены зависимости
  • [FIX] Исправление вывода множества записей при запросе метода GET
  • [UPDATE] Обновлены зависимости
  • [FIX] Исправление вывода множества записей при запросе метода GET
  • [UPDATE] Обновлены зависимости
  • Исправление: Устранены мелкие проблемы с маршрутизацией, что улучшает стабильность работы приложения.
  • Обновление: Изменён класс работы с базой данных на illuminate/database, что позволяет использовать более современные подходы к взаимодействию с базой данных.
  • Обновление: Пересмотрен подход к маршрутизации, что улучшает структуру и читаемость кода.
  • Нововведение: Добавлен новый маршрут для поиска по значениям /search/{db_table}. Подробности можно найти в документации.
  • Нововведение: Введён новый вид маршрутизации для каждой таблицы в формате /{db_table}/{id} для метода GET, что позволяет получать отдельные записи. Для таблицы post данный метод расширен, включая парсинг категорий и дополнительных полей.
  1. Обновление совместимости:
    • Поддержка DLE 17 и MySQL версии 5.7.
  2. Улучшение проверки маршрутизации:
    • Добавлена проверка запрещенных маршрутов.
    • Обеспечение существования запиваемого маршрута его подключением.
  3. Парсинг тела запроса:
    • Внедрение middleware для маршрутизации в API.
  4. Оптимизация кода:
    • Удалены неиспользуемые импорты в файле маршрутов post.
  5. Исправление форматирования:
    • Регулировка отступов и форматирования в dleapi.php для улучшения читаемости.
  6. Обновление версий:
    • Обновлены номера версий в dleapi.php и install.xml для отражения последних изменений.
  7. Исправление мелких проблем:
    • Исправлены мелкие проблемы маршрутизации, указанные в журнале изменений.
  • [FIX] Исправлена заявленная ошибка для запросов POST & PUT
  • [UPDATE] Обновлено до версии DLE 17.3
  • [UPDATE] Обновлено до версии PHP 8.3 (Она же является минимальной)
  • [UPDATE] Переструктурирована сама логика работы с CRUD запросами
Исправлены заявленные ошибки: #11
  • [FIX] Исправлена заявленная ошибка (#7)
  • [FIX] Исправлено подключение встроенного DLE API
  • [UPDATE] Документация была поправлена и обновлена
Назад
Сверху