https://docs.google.com/forms/d/e/1FAIpQLSeFG6LOI0i165oLR4mwHglMt_NaVcqak-Zz51hK8mnZ4SRJTQ/viewform
Разработайте веб-приложение на Python, используя FastAPI, которое предоставляет API для работы с коллекцией мемов. Приложение должно состоять из двух сервисов: сервис с публичным API с бизнес-логикой и сервис для работы с медиа-файлами, используя S3-совместимое хранилище (н-р, MinIO).
Функциональность:
-
GET /memes: Получить список всех мемов (с пагинацией).
-
GET /memes/{id}: Получить конкретный мем по его ID.
-
POST /memes: Добавить новый мем (с картинкой и текстом).
-
PUT /memes/{id}: Обновить существующий мем.
-
DELETE /memes/{id}: Удалить мем.
Требования:
-
Используйте реляционную СУБД для хранения данных.
-
Обеспечьте обработку ошибок и валидацию входных данных.
-
Используйте Swagger/OpenAPI для документирования API.
-
Напишите хотя бы несколько unit-тестов для проверки основной функциональности.
-
Напишите Readme, из которого понятна функциональность проекта и инструкция по локальному запуску для разработки.
-
Проект должен состоять минимум из: 1 сервис с публичным API, 1 сервис с приватным API для изображений, 1 сервис СУБД, 1 сервис S3-storage.
-
Напишите docker-compose.yml для запуска проекта.
Ожидаемый результат:
- Публичный git-репозиторий с проектом согласно перечисленным требованиям.