API

API UNIT ID

Запросы, которые доступны любому приложению: список сервисов UNIT, данные о человеке и его курсы.

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

  • Адрес — https://auth.labunit.ru, только HTTPS.
  • Ответы — JSON в UTF-8. Ошибка — HTTP-статус и тело {"error": "код", "error_description": "текст"}.
  • Авторизация от имени человека — заголовок Authorization: Bearer ACCESS_TOKEN.
  • Ответы с данными людей не кешируются (Cache-Control: no-store).

Сервисы UNIT

GET/api/services

Открытый список сервисов UNIT — для меню «Сервисы UNIT» в вашем приложении. Без авторизации, кешируется на 5 минут.

curl https://auth.labunit.ru/api/services

{
  "services": [
    {"id": "unit-…", "name": "Школа UNIT", "url": "https://courses.labunit.ru",
     "icon": "book", "tag": "школа", "description": "Курсы, задания и прогресс учеников"},
    {"id": "unit-…", "name": "Лаборатория UNIT", "url": "https://app.labunit.ru",
     "icon": "code", "tag": "лаборатория", "description": "Проекты, команда и мастерская"}
  ]
}
ПолеОписание
name, urlНазвание и адрес сервиса.
iconИмя значка: book, code, layers, grid, terminal, cpu, shield, chart, users, globe, chat и др.
tagТег доступа: у кого он есть в unit_tags, тому сервис доступен. Пусто — доступен всем.

Состав и порядок сервисов настраивает администратор UNIT — не зашивайте список в приложение, берите его отсюда.

Данные о человеке

GET/oauth/userinfo

Поля зависят от выданных прав — см. «Права и данные».

curl https://auth.labunit.ru/oauth/userinfo -H "Authorization: Bearer ACCESS_TOKEN"
СтатусКогда
200Данные человека.
401Токена нет, он истёк или отозван. Заголовок WWW-Authenticate: Bearer error="invalid_token".

Курсы человека

GET/api/id/courses

Курсы в школе UNIT и прогресс. Нужно право courses.

curl https://auth.labunit.ru/api/id/courses -H "Authorization: Bearer ACCESS_TOKEN"

{
  "courses": [
    {"id": "python-basics", "title": "Python: с нуля до первых программ",
     "done": 46, "total": 270, "percent": 17}
  ]
}
СтатусКогда
200Список курсов (может быть пустым).
403insufficient_scope — токен без права courses или недействителен.

Описание сервера

GET/.well-known/openid-configuration

Стандартный документ OpenID Connect Discovery: адреса, поддерживаемые права, способы авторизации клиента (client_secret_basic, client_secret_post, none), алгоритм подписи (RS256). Библиотеки читают его сами.

GET/oauth/jwks

Открытые ключи для проверки id_token.

UNIT · UNIT ID · вопросы по интеграции — администратору UNIT