ipr.lesson.list

Scope: ipr

Кто может вызывать: Авторизованный пользователь с доступом по ACL обучения. Подробнее: Модель доступа

Возвращает список уроков с поддержкой пагинации и фильтрации.

HTTP: GET

Побочные эффекты: none

Особенность фильтра courseId

Без filter.courseId метод возвращает уроки «плоским» списком по стандартному ACL обучения (обычно корневые уроки курсов). С filter.courseId — обходит всё дерево уроков курса и возвращает только его вложенные уроки (без самого корневого узла курса); в этом режиме постранично фильтруются в памяти по filter.active и filter.title (подстрока, без учёта регистра), а limit/offset применяются после сортировки по sort, затем по названию.

Параметры метода

Параметр Тип Обяз. Описание
limit int нет Размер страницы, по умолчанию 50, максимум 500
offset int нет Смещение
fetchAll bool нет Вернуть все записи одним ответом (максимум 5000)
filter object нет Фильтр в mongo-style формате

Поля filter (Mongo)

Поле API Соответствие
id ID урока
title Название
active Активность
parentId Родительский курс/урок (без courseId — стандартное поле обучения COURSE_ID)
courseId ID курса — включает режим обхода дерева (см. выше)

Возвращаемые данные

Массив объектов:

Поле Тип Описание
id int ID урока
title string Название
active bool Активность
courseId int ID курса, к которому относится урок
sort int Сортировка
landingId int|null ID лендинг-страницы, если урок собран из лендинга
detailText string Содержимое урока (HTML)
timestampX string Дата последнего изменения

Обработка ошибок

Справочник кодов: error-codes.md.

Код Описание
UNAUTHORIZED Пользователь не авторизован
INTERNAL_ERROR Модуль learning недоступен / внутренняя ошибка
INVALID_LIMIT / LIMIT_EXCEEDED / INVALID_OFFSET / INVALID_FILTER / INVALID_FILTER_OPERATOR Некорректные параметры пагинации/фильтра
FETCH_ALL_LIMIT_EXCEEDED Превышен лимит fetchAll

Пример запроса (GET)

curl -G "https://{портал}/rest/{user_id}/{webhook_code}/ipr.lesson.list.json"
          -H "Accept: application/json"
          --data-urlencode "filter[courseId]=305"
        

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

{
          "result": {
            "result": [
              {
                "id": 901,
                "title": "Что такое обратная связь 360",
                "active": true,
                "courseId": 305,
                "sort": 100,
                "landingId": null,
                "detailText": "<p>...</p>",
                "timestampX": "01.02.2026 10:00:00"
              }
            ],
            "total": 8,
            "next": 1,
            "error": null
          }
        }
        

См. также

Предыдущая
Следующая