Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Полный переход с 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 данный метод расширен, включая парсинг категорий и дополнительных полей.
- Обновление совместимости:
- Поддержка DLE 17 и MySQL версии 5.7.
- Улучшение проверки маршрутизации:
- Добавлена проверка запрещенных маршрутов.
- Обеспечение существования запиваемого маршрута его подключением.
- Парсинг тела запроса:
- Внедрение middleware для маршрутизации в API.
- Оптимизация кода:
- Удалены неиспользуемые импорты в файле маршрутов post.
- Исправление форматирования:
- Регулировка отступов и форматирования в dleapi.php для улучшения читаемости.
- Обновление версий:
- Обновлены номера версий в dleapi.php и install.xml для отражения последних изменений.
- Исправление мелких проблем:
- Исправлены мелкие проблемы маршрутизации, указанные в журнале изменений.
- [FIX] Исправлена заявленная ошибка для запросов POST & PUT
- [UPDATE] Обновлено до версии DLE 17.3
- [UPDATE] Обновлено до версии PHP 8.3 (Она же является минимальной)
- [UPDATE] Переструктурирована сама логика работы с CRUD запросами
- [FIX] Исправлена заявленная ошибка (#7)
- [FIX] Исправлено подключение встроенного DLE API
- [UPDATE] Документация была поправлена и обновлена