Используя 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"