Описание:
Серверная часть:
RESTful API на Python с использованием фреймворка fastapi.
Эндпоинты:
POST /api/v1/create: создание задачи
Входные параметры: Название (title), Описание (description).
GET /api/v1/get_list_by_status: получение задач с сортировкой по статусу.
Входные параметры: Статус (status)
POST /api/v1/get_list: получение всех задач
Входные параметры: Нет
GET /api/v1/get/{todo_id}: получение задачи по id.
Входные параметры: Айди задачи (id)
PUT /api/v1/update/{task_id}: обновление статуса задачи по id
Входные параметры: Айди задачи (id), Статус (status).
DELETE /api/v1/delete/{task_id}: удаление задачи по id
Входные параметры: Айди (id)
- pydantic
- pydantic_settings
- docker
- fastapi
- postgresql
- pytest
- grafana
- prometheus
- Клонирование репозитория Клонируйте репозиторий проекта на свой локальный компьютер:
git clone https://github.com/someqst/todo_test_task.git-
Настройка переменных окружения
Переименуйте файл .env.example в .env -
Сборка и запуск контейнеров Соберите и запустите проект с помощью Docker Compose:
docker-compose up --build-
Grafana
После запуска будет доступна панель grafana по адресу: http://127.0.0.1:3000 -
Документация API
Документация автоматически генерируется FastAPI и доступна по адресу: http://127.0.0.1:8000/docs -
Автотесты
Вместе с запуском сервиса запускаются интеграционные тесты
-
Приобрести VDS сервер (на VPS вряд ли получится, потому что docker в docker не запустится)
-
Клонирование репозитория на сервер Клонируйте репозиторий проекта на свой локальный компьютер:
git clone https://github.com/someqst/todo_test_task.git-
Настройка переменных окружения Переименуйте файл .env.example в .env, вставьте свой токен бота
-
Сборка и запуск контейнеров Соберите и запустите проект с помощью Docker Compose:
docker-compose up --buildПосле запуска проект будет доступен по адресу:
http://{внешний_адрес_вашего_сервера}:8000
Чтобы сервер был доступен извне, стоит открыть порты на сервере, например, с помощью ufw:
sudo ufw allow 8000/tcp
sudo ufw reload
sudo ufw status- Документация API Документация автоматически генерируется FastAPI и доступна по адресу:
Swagger UI: http://127.0.0.1:8000/docs