Erudite - база комнат, оборудования, дисциплин и занятий в МИЭМе. Является модулем NVR, так как авторизация проходит через него. Erudite это более удобная и гибкая замена Google AdminSDK.
Данный сервис построен на базе mongodb, где мы храним и манипулируем данными, которые нам нужны для использования другими сервисами.
У Erudite есть несколько особенностей:
-
Без аутенфикации Erudite пропускает только GET запросы, для других типов запросов нужна аутенфикация по API ключу NVR
-
Так как Erudite использует нереляционную базу данных, пользователи данного сервиса могут добавять любые дополнительные поля, которые им будут удобны - главное, следить за правильным заполнением обязательных полей, которые указаны в документации.
Документация UI: https://nvr.miem.hse.ru/api/erudite/docs
На данный момент в Erudite присутствуют 4 коллекции - equipment, rooms, disciplines и lessons. Поэтому описание API методов и запросов будет разбито по коллекциям.
Rooms - коллекция, хранящия МИЭМовские аудитории.
Request
GET /rooms
Запрос вернет список комнат если не было передано ни одного дополнительного параметра. Если же параметр/параметры были переданы, то данный запрос произведет фильтрацию всех комнат по данным параметрам, и вернет результат.
Request
GET /rooms/{room_id}
Запрос вернет комнату по переданному айдишнику, если тот существует.
Request
GET /rooms/{room_id}/equipment
Запрос вернет оборудование в комнате, указанной по айдишнику, если тот существует.
Request
POST /rooms
Запрос создаст комнату по переденным данным, если обязательные поля введены и введены правильно. При успешном добавлении будет возвращена добавленная комната. Важно указать id комнаты при её создании.
Request
PUT /rooms/{room_id}
Запрос удалит все данные о комнате, кроме ее айдишника, и запишет в комнату новые данные. Так же происходит проверка обязательных полей на правильность.
Request
DELETE /rooms/{room_id}
Запрос удаляет комнату по переданому айдишнику, если комната с данным айдишником существует.
Request
PATCH /rooms/{room_id}
Запрос обновит указанные поля комнаты, чей айдишник передается через параметры. Если таких полей нет у данной комнаты, то они будут добавлены.
Equipment - коллекция, хранящая МИЭМовское оборудование.
Request
GET /equipment
Запрос вернет список оборудования если не было передано ни одного дополнительного параметра. Если же параметр/параметры были переданы, то данный запрос произведет фильтрацию всего оборудования по данным параметрам, и вернет результат.
Request
GET /equipment/{equipment_id}
Запрос вернет оборудование по переданному айдишнику, если тот существует.
Request
POST /equipment
Запрос создаст оборудование по переденным данным, если обязательные поля введены и введены правильно. При успешном добавлении будет возвращено добавленное оборудование. Важно указать id оборудования при её создании.
Request
PUT /equipment/{equipment_id}
Запрос удалит все данные об оборудовании, кроме его айдишника, и запишет в оборудование новые данные. Так же происходит проверка обязательных полей на правильность.
Request
DELETE /equipment/{equipment_id}
Запрос удаляет оборудование по переданому айдишнику, если оборудование с данным айдишником существует.
Request
PATCH /equipment/{equipment_id}
Запрос обновит указанные поля оборудования, чей айдишник передается через параметры. Если таких полей нет у данного оборудования, то они будут добавлены.
Disciplines - коллекция, хранящая данные о дисциплинах в МИЭМе.
Request
GET /disciplines
Запрос вернет список дисциплин если не было передано ни одного дополнительного параметра. Если же параметр/параметры были переданы, то данный запрос произведет фильтрацию всех дисциплин по данным параметрам, и вернет результат.
Request
GET /disciplines/{discipline_id}
Запрос вернет оборудование по переданному айдишнику, если тот существует.
Request
POST /equipment
Запрос создаст дисциплину по переденным данным, если обязательные поля введены и введены правильно. При успешном добавлении будет возвращена добавленная дисциплина. Важно указать id дисциплины при её создании.
Request
PUT /equipment/{equipment_id}
Запрос удалит все данные об дисциплине, кроме её айдишника, и запишет в оборудование новые данные. Так же происходит проверка обязательных полей на правильность.
Request
DELETE /equipment/{equipment_id}
Запрос удаляет дисциплину по переданому айдишнику, если дисциплина с данным айдишником существует.
Lessons - коллекция, хранящая данные о парах в МИЭМе.
Request
GET /lessons
Запрос вернет список пар если не было передано ни одного дополнительного параметра. Если же параметр/параметры были переданы, то данный запрос произведет фильтрацию всех пар по данным параметрам, и вернет результат.
Request
GET /lessons/{lesson_id}
Запрос вернет пару по переданному айдишнику, если тот существует.
Request
POST /lessons
Запрос создаст пару по переденным данным, если обязательные поля введены и введены правильно. При успешном добавлении будет возвращена добавленная пара. Важно указать id пары при её создании.