Создать новую ветку в репозитории и подготовить пул-реквест, реализующий описанный ниже функционал.
На Python + FastAPI реализовать REST эндпоинты для генерации документов в формате MS Word (docx), приведенных в приложениях 1, 2 и 3 приказа ректора:
GET /conferences/{conference_id}/programme - получение программы конференции (приложение 1);
GET /conferences/{conference_id}/report- получение отчета о проведенной конференции (приложение 2);
GET /conferences/{conference_id}/publications - получение представляемых к публикации докладов по итогам конференции (приложение 3).
В качестве базы данных (хранилища) перечня конференций используется таблица Google.Sheets, с которой необходимо работать через Google Sheets API. Подробнее см. #2 и #9.
В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке "Authorization: Bearer {token}". Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.
Выходные данные
При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).
В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке "Authorization: Bearer {token}". Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.
Выходные данные
При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).
В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке "Authorization: Bearer {token}". Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.
Выходные данные
При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).
Задание
Создать новую ветку в репозитории и подготовить пул-реквест, реализующий описанный ниже функционал.
На Python + FastAPI реализовать REST эндпоинты для генерации документов в формате MS Word (docx), приведенных в приложениях 1, 2 и 3 приказа ректора:
GET /conferences/{conference_id}/programme
- получение программы конференции (приложение 1);GET /conferences/{conference_id}/report
- получение отчета о проведенной конференции (приложение 2);GET /conferences/{conference_id}/publications
- получение представляемых к публикации докладов по итогам конференции (приложение 3).В качестве базы данных (хранилища) перечня конференций используется таблица Google.Sheets, с которой необходимо работать через Google Sheets API. Подробнее см. #2 и #9.
GET /conferences/{conference_id}/programme
Входные данные (URL)
Параметр
{conference_id}
(число) - идентификатор конференции.Логика работы
В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке
"Authorization: Bearer {token}"
. Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.Выходные данные
При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).
GET /conferences/{conference_id}/report
Входные данные (URL)
Параметр
{conference_id}
(число) - идентификатор конференции.Логика работы
В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке
"Authorization: Bearer {token}"
. Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.Выходные данные
При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).
GET /conferences/{conference_id}/publications
Входные данные (URL)
Параметр
{conference_id}
(число) - идентификатор конференции.Логика работы
В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке
"Authorization: Bearer {token}"
. Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.Выходные данные
При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).