Skip to content

FastAPI веб-сервис для управления задачами. | код покрыт тестами pytest и проверен с использованием coverage, mypy, pylint | приложение запускается в контейнере docker-compose.

Notifications You must be signed in to change notification settings

moduleb/task_hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PythonDockerFastAPIMySQL

Task Hub API

API сервис для управления задачами

Содержание

Описание

API Сервис предоставляет возможность создания, обновления, удаления и получения информации о задачах.

Сервис написан на языке Python с использование библиотеки FastAPI. Данные хранятся в базе данных MySQL.
API сервис и база данных запускаются в Docker контейнерах с использованием Docker Compose.
Данные в хранилище MySQL сохраняются после остановки или удаления контейнеров.

Особенности:

  • код покрыт тестами pytest и проверен с использованием coverage, mypy, pylint.

Установка и запуск

Для запуска сервиса требуется установленный Docker.

  1. Клонировать репозиторий с GitHub:
git clone git@github.com:moduleb/task_hub.git

альтернативный вариант - скачать архив проекта со страницы на GitHub

  1. Перейти в папку с проектом:
cd task_hub
  1. Собираем и запускаем образ
docker compose up -d --build
  1. Для остановки контейнера используйте команду:
docker compose down

API Endpoints

Create

Создание новой задачи

Request

POST /tasks

'taskname' должно быть уникальным, остальные поля могут быть пустыми

  {
    "taskname": "Task1",
    "description": "Create a picture",
    "category": "Hobby"
  }

Response

200 Successful

{
  "detail": "Task created successfully"
}

Get one

Получение информации о задаче

Request

GET /tasks/{task_id}

Response

200 Successful

{
  "data": {
    "id": 18,
    "taskname": "Task1",
    "description": "Create a picture",
    "category": "Hobby",
    "creation_date": "2023-12-11T19:35:46"
  }
}

Get all

Получение информации о всех заданиях

Request

GET /tasks

Response

200 Successful

{
  "data": [
    {
      "id": 18,
      "taskname": "Task1",
      "description": "Create a picture",
      "category": "Hobby",
      "creation_date": "2023-12-11T19:35:46"
    },
    {
      "id": 20,
      "taskname": "Task2",
      "description": "Create a program",
      "category": "Hobby",
      "creation_date": "2023-12-11T19:35:46"
    }
  ]
}

Update

Обновление информации о задаче

Request

PUT /tasks

'taskname' должно быть уникальным, остальные поля могут быть пустыми

  {
    "taskname": "Task1",
    "description": "Create a picture",
    "category": "Hobby"
  }

Response

200 Successful

{
  "detail": "Task updated successfully"
}

Delete

Удаление задачи

Request

DELETE /tasks/{task_id}

Response

204 No Content


Errors

  • 404 Not Found - задача не найдена
  • 405 Method Not Allowed
  • 409 Conflict - задача с таким названием уже существует
  • 422 Unprocessable Entity - поле содержит недопустимые символы
  • 500 Internal Server Error - внутренняя ошибка сервера

About

FastAPI веб-сервис для управления задачами. | код покрыт тестами pytest и проверен с использованием coverage, mypy, pylint | приложение запускается в контейнере docker-compose.

Resources

Stars

Watchers

Forks