Skip to content

romssc/taskmaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taskmaster

Taskmaster — это небольшой HTTP-сервис для управления задачами. Он реализует базовый функционал: создание задач, получение списка задач и получение задачи по идентификатору. В качестве хранилища используется in-memory storage.

Сборка

git clone https://github.com/romssc/taskmaster
cd taskmaster
go build -o build/taskmaster ./cmd/taskmaster

Конфигурация

Сервис читает настройки из файла config.yaml.

Пример:

http_server:
  host: "localhost"
  port: "8080"
  read_timeout: 10s
  write_timeout: 10s
  idle_timeout: 10s
  shutdown_timeout: 10s
logger:
  buffer: 150

Запуск

./build/taskmaster

Сервер по умолчанию поднимается на http://localhost:8080.

Формат хранения данных

Задача хранится в структуре:

{
  "id": 123,
  "title": "Название задачи",
  "description": "Подробное описание",
  "created_at": "2025-08-18T12:34:56Z",
  "status": "0"
}
  • id — уникальный идентификатор (генерируется автоматически)
  • title — заголовок задачи
  • description — описание задачи
  • created_at — время создания
  • status — строка "0" или "1" (например, 0 — новая, 1 — завершённая)

REST API

POST /tasks

Тело запроса:

{
  "title": "Сходить в магазин",
  "description": "Купить хлеб и молоко"
}

Ответ:

{
  "id": 123
}

GET /tasks?status=status

  • status — необязательный параметр ("0" или "1"), используемый для фильтрации по статусу.

Ответ:

{
  "tasks": [
    {
      "id": 123,
      "title": "Сходить в магазин",
      "description": "Купить хлеб и молоко",
      "created_at": "2025-08-18T12:34:56Z",
      "status": "0"
    }
  ]
}

GET /tasks/{id}

Ответ:

{
  "id": 123,
  "title": "Сходить в магазин",
  "description": "Купить хлеб и молоко",
  "created_at": "2025-08-18T12:34:56Z",
  "status": "0"
}

Ошибки

  • 400 Bad Request — некорректный ID или статус, неверное тело запроса
  • 404 Not Found — задача не найдена
  • 405 Method Not Allowed — метод не поддерживается
  • 500 Internal Server Error — внутренняя ошибка сервера

About

небольшой http-сервис для управления задачами

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages