Создание запроса в Data Explorer с помощью API

Создание запроса Data Explorer через API

:bookmark: В этом руководстве объясняется, как создать запрос Data Explorer с помощью API Discourse.

:person_raising_hand: Требуемый уровень доступа пользователя: Администратор

Предварительные требования

Перед началом убедитесь, что у вас есть:

:information_source: Для создания запросов требуется глобальный ключ API. Уточнённая область действия «run queries» позволяет только выполнять существующие запросы, но не создавать новые.

Создание запроса

Чтобы создать новый запрос Data Explorer, выполните POST-запрос к /admin/plugins/discourse-data-explorer/queries.

Параметры

Параметр Обязательно Описание
query[name] Да Название вашего запроса
query[sql] Да SQL-запрос для выполнения
query[description] Нет Описание того, что делает запрос
query[group_ids] Нет Массив идентификаторов групп, которые могут получить доступ к этому запросу

Пример запроса

curl -X POST "https://your-site.com/admin/plugins/discourse-data-explorer/queries" \
  -H "Content-Type: multipart/form-data;" \
  -H "Api-Key: <api-key>" \
  -H "Api-Username: <username>" \
  -F 'query[name]=User count query' \
  -F 'query[sql]=SELECT COUNT(*) FROM users'

Пример ответа

{
  "query": {
    "id": 49,
    "name": "User count query",
    "description": null,
    "username": "<username>",
    "group_ids": [],
    "last_run_at": "2025-03-13T18:41:44.226Z",
    "user_id": 1,
    "is_default": false,
    "sql": "SELECT COUNT(*) FROM users",
    "param_info": [],
    "created_at": "2025-03-13T18:41:44.226Z",
    "hidden": false
  }
}

Обратите внимание на значение id в ответе — оно понадобится вам для выполнения запроса. Подробнее о выполнении запросов через API см. в статье Выполнение запросов Data Explorer с помощью API Discourse.

6 лайков

Вы изменили путь к вызову API и сломали мой запрос!?! Раньше он был /admin/plugins/explorer/queries/3/run, и вдруг действие GitHub перестало работать. Это выглядит не очень приятно.

3 лайка

Наши инструменты перестали работать из-за этого изменения пути, а также из-за требования использовать глобальный API-ключ вместо ключа только для чтения, которого раньше было достаточно.

Это было неприятно.

Звучит как ошибка.