Помощь · Интеграции

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

Публичные маршруты Latorn для учётных записей, обучения и преподавательских инструментов. Каждый раздел можно читать отдельно.

Здесь описаны только пользовательские и преподавательские интеграции. Служебные операции платформы в публичный справочник не входят.

Справочник API

Начало работы с API

Базовый адрес, сессия, форматы запросов, ошибок и списков — всё необходимое перед первым вызовом.

Маршруты раздела

Метод Маршрут Доступ Назначение
GET /api/health Без входа Проверить доступность приложения и базы данных.

Базовый адрес

Все маршруты начинаются с /api. В локальной разработке полный адрес обычно выглядит так:

http://localhost:3000/api

На рабочем сайте используйте его основной домен.

Как выполняется вход

В интерфейсе Latorn используется сессионная cookie NextAuth. Для серверного скрипта, CLI или настольного редактора преподаватель может создать персональный API-токен и передавать его как Authorization: Bearer …. Токены работают только в явно выбранных курсах и только с выданными правами.

const response = await fetch("/api/profile", {
  credentials: "include",
});

Токен не включает CORS автоматически: браузерному приложению на другом домене нужен собственный серверный proxy. Никогда не встраивайте токен в публичный JavaScript. Подробности и готовые примеры — в разделе API-токены.

В справочнике используются три понятных уровня доступа:

  • Без входа — маршрут можно вызвать без сессии.
  • Нужна сессия — пользователь должен войти в Latorn.
  • Преподаватель курса — дополнительно проверяются права внутри конкретного курса.

Формат JSON-ошибки

Большинство маршрутов возвращает ошибку в едином виде:

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Проверьте поля запроса",
    "details": {}
  }
}

Сначала проверяйте HTTP-статус, затем error.code. Текст message предназначен для человека и может уточняться.

Списки и постраничная выдача

Маршруты со списками обычно принимают page (иногда также pageSize) и возвращают метаданные рядом с ресурсным массивом. Имя массива зависит от маршрута: например, courses, notifications или submissions:

{
  "meta": {
    "page": 1,
    "pageSize": 40,
    "hasNext": false,
    "hasPrevious": false,
    "total": 12
  },
  "courses": []
}

Даты передаются строками ISO 8601. Денежные суммы в платёжных и отчётных ответах передаются в копейках, если возле поля явно не указано иное.

Быстрая проверка

const response = await fetch("/api/health");
const health = await response.json();

if (!response.ok) {
  throw new Error("Latorn временно недоступен");
}
Поддержка