MODX Revolution

gtsAPI

REST API для таблиц MODX по конфигу: права доступа, токены, файлы и готовый интерфейс таблиц PVTables.

gtsAPI превращает таблицы MODX в REST API без написания контроллеров. Таблица, её поля и права описываются в конфиге, остальное компонент делает сам. Вместе с ним идёт PVTables, готовый интерфейс таблиц на Vue, ставить его отдельно не нужно.

Обновите все сайты до 1.2.1. В прежних версиях гость мог загружать, менять и удалять файлы через галерею.

Что умеет

  • Таблицы: чтение, создание, изменение и удаление записей, фильтры, сортировка, автокомплит и экспорт в Excel.
  • Другие типы данных: JSON-таблицы и деревья.
  • Свои адреса: правила gtsAPIRule направляют запрос к вашему контроллеру, а вызовы вида пакет/метод к вашему классу.
  • Доступ: вход, группы и разрешения MODX задаются для каждой таблицы. Для запросов извне есть токены JWT.
  • Файлы: галерея и файловый API с проверкой прав.
  • Триггеры: обработчики событий таблицы, на один класс можно повесить несколько.
  • Дополнительные поля: колонки можно добавлять к таблицам, в том числе к таблицам ядра MODX.
  • Сборка и установка: компонент на Vue собирается и ставится на сайт одной командой через API пакетов.
  • Доступ для ИИ: таблицу можно открыть ИИ-агенту. Разрешение выдаётся на каждое действие, права пользователя остаются потолком, а правки можно откатить.

Пример

Таблица с чтением и изменением только для администраторов:

export default {
    mypackage: {
        name: 'mypackage',
        gtsAPITables: {
            myTable: {
                table: 'myTable',
                class: 'myClass',
                version: 1,
                type: 1,
                authenticated: true,
                groups: 'Administrator',
                permissions: '',
                active: true,
                properties: {
                    actions: { read: {}, update: {} },
                    fields: {
                        id: { label: 'ID', type: 'view', readonly: true },
                        name: { label: 'Название', type: 'text' },
                    },
                },
            },
        },
    },
}

После этого таблица доступна по адресу /api/myTable.

Поле с type: 'view' защищено только в интерфейсе. Чтобы сервер тоже запрещал его менять, добавьте readonly: true.

Требования

  • MODX 2.8 или MODX 3.
  • Установленный pdoTools.

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

После установки инструкции лежат в core/components/gtsapi/docs:

  • gtsapi_rule_trigger.md: триггеры;
  • gtsAPIGallery_guide.md: галерея.

Лицензия

GNU GPL v2.

Что нового

Резолвер зависимостей скачивает файл в два шага, как сам MODX: прямая ссылка modx.com отвечает редиректом. Скачанный файл проверяется, не zip считается ошибкой.