Open source

API расписания РТУ МИРЭА

REST API расписания: преобразование iCal в JSON, поиск и OpenAPI.

API расписания РТУ МИРЭА
Формат
Open source
Сфера
Образовательные сервисы
Роль
Проектирование и разработка API

Контекст

Университет публикует расписание в iCal: формат подходит календарным приложениям, но неудобен для ботов и веб-сервисов. Клиентам нужен структурированный JSON, поиск групп, преподавателей и кабинетов, а также понятная работа с учебной неделей.

Как решал задачу

iCal как внешний источник, JSON как контракт

Парсер изолирует особенности календарного файла и преобразует события в стабильную структуру API. Клиентам не нужно разбирать iCal самостоятельно.

Боты и приложения получают одинаковые нормализованные данные независимо от исходного представления.

Два способа получить расписание

API поддерживает точный запрос по идентификатору и поиск по названию. Отдельный метод поиска помогает сначала найти группу, преподавателя или кабинет.

Интеграция подходит и для сохранённых идентификаторов, и для пользовательского поиска.

Кэш между источником и клиентами

Полученные и разобранные данные сохраняются с TTL. Частые клиентские запросы не требуют каждый раз обращаться к университетскому источнику и повторно разбирать файл.

Ответы выдаются быстрее, а зависимость от доступности внешнего источника уменьшается.

Самодокументируемый запуск

Контракт опубликован через OpenAPI, а сервис упакован для запуска в Docker. Методы и формат ответа можно проверить до подключения клиентского приложения.

API проще развернуть, исследовать и подключить к новому потребителю.

Результат

Публичный API стал единой точкой доступа к расписанию.

Технологии

  • Python
  • REST API
  • iCal
  • OpenAPI
  • Docker

Следующий кейс

dotcd →