Перейти к основному содержимому

Карта API

Общие правила

  • Базовый префикс: /api/v2/task-bank.
  • Public endpoints не возвращают answer keys, закрытые solutions и hidden hints.
  • Все write endpoints требуют authenticated actor или service scope.
  • Attempts/checking endpoints принимают Idempotency-Key.
  • Любой endpoint с solution/key проверяет visibility policy и permission.

Problems and versions

EndpointМетодPermissionНазначение
/problemsGETtask-bank.problems.readсписок задач
/problemsPOSTtask-bank.problems.manageсоздать задачу
/problems/{problemId}GET/PATCHtask-bank.problems.read/manageкарточка
/problems/{problemId}/versionsGET/POSTtask-bank.versions.read/manageверсии
/problem-versions/{versionId}GET/PATCHtask-bank.versions.read/manageверсия
/problem-versions/{versionId}/publishPOSTtask-bank.versions.publishпубликация
/problems/{problemId}/variantsGET/POSTtask-bank.variants.read/manageварианты задачи
/problem-variants/{variantId}GET/PATCHtask-bank.variants.read/manageкарточка варианта
/problem-variants/{variantId}/generatePOSTtask-bank.variants.manageвоспроизводимо сгенерировать параметризованный вариант
/problem-variants/{variantId}/equivalencePOSTtask-bank.variants.manageпроверить эквивалентность исходной задаче
/problems/{problemId}/relationsGET/POSTtask-bank.relations.read/manageсвязи duplicate/analog/similar/prerequisite
/problem-relations/{relationId}/confirmPOSTtask-bank.relations.moderateподтвердить связь
/problem-relations/{relationId}/rejectPOSTtask-bank.relations.moderateотклонить связь
/problem-versions/{versionId}/solutionsGET/POSTtask-bank.solutions.read/manageрешения
/problem-versions/{versionId}/hintsGET/POSTtask-bank.hints.read/manageподсказки
/problem-versions/{versionId}/checking-rulesGET/POSTtask-bank.checking_rules.manageправила проверки

Taxonomy, sets, usage

EndpointМетодPermissionНазначение
/taxonomy/nodesGET/POSTtask-bank.taxonomy.read/managetaxonomy
/problems/{problemId}/taxonomy-linksPOSTtask-bank.taxonomy.manageпривязать taxonomy
/problem-setsGET/POSTtask-bank.sets.read/manageподборки
/problem-sets/{setId}/itemsPOSTtask-bank.sets.manageдобавить item
/problem-sets/{setId}/publishPOSTtask-bank.sets.publishпубликация
/usagesGET/POSTservice scope или task-bank.usages.manageusage registry
/usages/{usageId}/lockPOSTtask-bank.usages.managelock usage
/publication-profiles/{problemId}GET/PATCHtask-bank.publication.managepublic eligibility и SEO profile

Activity and program templates

EndpointМетодPermissionНазначение
/activity-templatesGET/POSTtask-bank.activity_templates.read/manageсписок и создание шаблонов активностей
/activity-templates/{templateId}GET/PATCHtask-bank.activity_templates.read/manageкарточка шаблона
/activity-templates/{templateId}/sectionsPOSTtask-bank.activity_templates.manageдобавить section
/activity-templates/{templateId}/itemsPOSTtask-bank.activity_templates.manageдобавить problem item
/activity-templates/{templateId}/publishPOSTtask-bank.activity_templates.publishопубликовать version
/activity-templates/{templateId}/exportsPOSTtask-bank.exports.createсоздать content export snapshot
/program-templatesGET/POSTtask-bank.program_templates.read/manageсписок и создание программ
/program-templates/{templateId}GET/PATCHtask-bank.program_templates.read/manageкарточка программы
/program-templates/{templateId}/tracksPOSTtask-bank.program_templates.manageдобавить track
/program-templates/{templateId}/activitiesPOSTtask-bank.program_templates.manageдобавить activity в track
/program-templates/{templateId}/publishPOSTtask-bank.program_templates.publishопубликовать программу
/program-templates/{templateId}/exportsPOSTtask-bank.exports.createсоздать program snapshot
/content-export-snapshots/{snapshotId}GETservice scope или task-bank.exports.readпрочитать snapshot
/content-export-snapshots/{snapshotId}/lockPOSTtask-bank.exports.lockзафиксировать snapshot

Public catalog projection

Public endpoints возвращают только public-safe fields и не раскрывают answer keys, hidden solutions, teacher notes, raw attempts и embargoed content.

EndpointМетодPermissionНазначение
/public/tasksGETpublicpublic catalog list
/public/tasks/{taskId}GETpubliccanonical task page projection
/public/topics/{path}GETpublictopic landing/list
/public/sources/{path}GETpublicsource landing/list
/public/tags/{slug}GETpublictag landing/list
/public/searchGETpublicsearch projection, noindex follow

Attempts and checking

EndpointМетодPermissionНазначение
/attemptsPOSTauthenticated/service scopeначать attempt
/attempts/{attemptId}/submitPOSTowner/service scopeотправить ответ
/attempts/{attemptId}/checkPOSTservice scope или task-bank.checks.manageпроверить
/answer-checks/{checkId}/overridePOSTtask-bank.checks.overrideoverride
/manual-reviewsGETtask-bank.manual_reviews.readочередь
/manual-reviews/{reviewId}/assignPOSTtask-bank.manual_reviews.manageназначить
/manual-reviews/{reviewId}/decisionPOSTtask-bank.manual_reviews.manageрешение
/evidenceGETtask-bank.evidence.readevidence

Admin

EndpointМетодPermissionНазначение
/importsPOSTtask-bank.imports.manageимпорт
/imports/{jobId}GETtask-bank.imports.readстатус импорта
/audit-logsGETtask-bank.audit.readаудит
/exportsPOSTtask-bank.exports.createэкспорт
/settingsGET/PATCHtask-bank.adminнастройки

Error codes

КодHTTPКогда
task-bank.problem.not_found404задача не найдена
task-bank.problem_version.immutable409попытка изменить published version
task-bank.problem_version.not_publishable409version нельзя published
task-bank.solution.forbidden403solution/key скрыт
task-bank.answer_schema.invalid400answer schema невалидна
task-bank.checking_rule.invalid400checking rule невалиден
task-bank.attempt.invalid_status409недопустимый переход attempt
task-bank.check.failed422checker не смог проверить
task-bank.manual_review.required202нужна ручная проверка
task-bank.usage.locked409usage нельзя изменить
task-bank.snapshot.locked409locked snapshot нельзя изменить
task-bank.relation.cycle409prerequisite создаёт цикл
task-bank.public_projection.forbidden403public projection запросил закрытые данные