Skip to content
This repository has been archived by the owner on Aug 4, 2023. It is now read-only.

novichikhin/net-vision-microservice

Repository files navigation

Тестовое задание

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

About

Test task for net-vision.pro

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published