ipr.question.add
Scope:
iprКто может вызывать: Право на связанный тест/курс (
canManageCourse) либо на урок; привилегированные — без ограничений. Подробнее: Модель доступа
Создаёт вопрос вместе с вариантами ответов.
HTTP: POST
Побочные эффекты: Создаёт вопрос и варианты ответов в модуле learning; при указанном courseId/определяемом курсе — привязывает вопрос к курсу.
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
title (алиас name) |
string |
да | Текст вопроса, 1..255 символов |
lessonId |
int |
да* | Урок, к которому привязывается вопрос |
testId |
int |
да* | Тест — если передан, lessonId разрешается автоматически из теста (и должен совпадать, если также передан явно) |
type (алиас questionType) |
string |
нет | S, M, T, R, либо человекочитаемые синонимы (single, multiple, text, sort). По умолчанию S |
description |
string |
нет | Дополнительное описание/пояснение |
sort |
int |
нет | Сортировка |
point (алиас points) |
int |
нет | Балл за верный ответ |
correctRequired |
bool |
нет | Требовать обязательный правильный ответ |
active |
bool |
нет | По умолчанию true |
courseId |
int |
нет | Курс для привязки вопроса. Если не передан — определяется по testId/lessonId |
answers |
array |
нет | Варианты ответов, см. ниже |
* Нужен хотя бы один из lessonId/testId.
Структура answers[]
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
text (алиас answer) |
string |
да | Текст варианта (пустые элементы пропускаются) |
correct |
bool |
нет | Правильный вариант |
sort |
int |
нет | Сортировка; по умолчанию — позиция в массиве × 10 |
"answers": [
{ "text": "Своевременность", "correct": true },
{ "text": "Анонимность автора", "correct": false }
]
Возвращаемые данные
Полный вопрос — та же форма, что у ipr.question.get.
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
VALIDATION_ERROR |
title/lessonId не переданы, некорректный type, lessonId не относится к testId, answers не массив |
NOT_FOUND |
testId не найден |
PERMISSION_DENIED |
Нет прав на связанный тест/курс/урок |
INTERNAL_ERROR |
Не удалось создать вопрос |
Пример запроса (POST)
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/ipr.question.add.json"
-H "Content-Type: application/json"
-H "Accept: application/json"
--data '{
"title": "Что из перечисленного относится к принципам обратной связи?",
"testId": 44,
"type": "M",
"point": 2,
"answers": [
{ "text": "Своевременность", "correct": true },
{ "text": "Анонимность автора", "correct": false }
]
}'
Пример ответа
{
"result": {
"result": {
"id": 501,
"title": "Что из перечисленного относится к принципам обратной связи?",
"testId": 44,
"lessonId": 905,
"type": "M"
},
"total": null,
"next": null,
"error": null
}
}
См. также
Предыдущая
Следующая