For-Kode-Test-task
README.md
Описание задачи
Необходимо спроектировать и реализовать на Python сервис, предоставляющий REST API интерфейс с функциональностью для работы с заметками.
Основные задачи
-
Создание сервиса:
- Реализовать сервис на языке Python (версии 3.9 и выше).
- Обеспечить работу сервиса через REST API с использованием формата JSON.
-
Реализация методов API:
- Добавление заметки.
- Вывод списка заметок.
-
Хранение данных:
- Данные должны храниться либо в текстовом файле (формат JSON или CSV), либо в базе данных (PostgreSQL или MongoDB).
-
Валидация заметок:
- Интегрировать сервис Яндекс. Спеллер для проверки орфографических ошибок при сохранении заметок.
-
Аутентификация и авторизация:
- Реализовать систему аутентификации и авторизации, обеспечивая доступ пользователей только к своим заметкам.
- Регистрация пользователей не обязательна; допускается использование предустановленного набора пользователей (возможно хардкодирование).
Условия реализации
- Использовать асинхронный web-фреймворк (например, aiohttp, fastapi, starlette) для реализации web-сервера.
- Обеспечить корректное использование type hint'ов в коде.
- Использовать средства автоматизированного форматирования исходного кода (например, yapf или black).
- Запуск сервиса и необходимой инфраструктуры должен осуществляться в Docker-контейнерах.
- Продумать удобство проверки работоспособности методов API при ревью задачи (шаблоны curl запросов, коллекции Postman, тесты и т. д.).