Используя Python3, FastAPI, SQLAlchemy написать:
Необходимо реализовать следующие endpoint:
-
POST
/new
Сохраняет запись в базу данных и присваивает ей уникальный идентификатор uuid. Пример тела запроса:
[ {"uuid": "e48d41d0-6e53-490a-9d9a-fd4337f28038", "text": "test example"}, {"uuid": "eddd8cd7-1128-4b83-98d4-7cde1514625e", "text": "another example"} ]
-
GET
/all
Отдаёт все добавленные записи, пример тела ответа:
[ {"uuid": "e48d41d0-6e53-490a-9d9a-fd4337f28038", "text": "test example"}, {"uuid": "eddd8cd7-1128-4b83-98d4-7cde1514625e", "text": "another example"} ]
-
GET
/<uuid>
Отдаёт конкретную запись по запрошенному uuid. Если записи не существует, отдаёт HTTP 404. Пример успешного ответа:
{"uuid": "e48d41d0-6e53-490a-9d9a-fd4337f28038", "text": "test example"}
-
GET
/<count>
Отдаёт запрошенное в количество записей. Пример успешного ответа:
[ {"uuid": "e48d41d0-6e53-490a-9d9a-fd4337f28038", "text": "test example"}, {"uuid": "eddd8cd7-1128-4b83-98d4-7cde1514625e", "text": "another example"} ]
-
DELETE
/<uuid>
Удаляет запись по запрошенному uuid из базы. Если записи не существует, отдаёт HTTP 404. В случае успеха возвращает HTTP 200.
Запускается вместе с первым и постоянно генерирует случайное количество (от 10 до 100) случайных строк (буквы-цифры, 16 символов) для вставки в базу первого сервиса по API.
Одновременно с этим приложение постоянно запрашивает по API по 10 строк и удаляет их, раз в 10 секунд в стандартный поток вывода необходимо печать количество удалённых записей.
- Базу данных можно использовать любую
- Обеспечить запуск через "docker compose up"