Как всё связано
- 01ITMO.ID
- 02my.itmo.ru
- 03БАРС
01
Зачем
Каждый студенческий сервис вокруг ИТМО заново пишет тот же логин и парсит те же страницы. Мне нужен был один типизированный клиент, который делает это правильно, чтобы мои боты и сайты перестали делать это криво.
02
Покрытие
- Все 452 роута my.itmo.ru в виде 809 типизированных методов.
- Все 81 роут REST API БАРС.
03
Логин целиком
ITMO.ID построен на Keycloak. Библиотека берёт на себя PKCE, одноразовые коды, единый вход во все сервисы ИТМО и ротацию refresh-токенов, так что сессия просто не отваливается.
04
Маленькая намеренно
Из зависимостей только golang.org/x/oauth2 и golang.org/x/net.
go get github.com/kewldan/go-itmo