Сервис для управления задачами с HTTP API на Go.
- Go
1.23+ - Docker и Docker Compose
docker compose up --buildПосле запуска сервис будет доступен по адресу http://localhost:8080.
Если postgres уже запускался ранее со старой схемой, пересоздай volume:
docker compose down -v
docker compose up --buildПричина в том, что SQL-файл из migrations/0001_create_tasks.up.sql монтируется в docker-entrypoint-initdb.d и применяется только при инициализации пустого data volume.
Swagger UI:
http://localhost:8080/swagger/
OpenAPI JSON:
http://localhost:8080/swagger/openapi.json
Базовый префикс API:
/api/v1
Основные маршруты:
POST /api/v1/tasksGET /api/v1/tasksGET /api/v1/tasks/{id}PUT /api/v1/tasks/{id}DELETE /api/v1/tasks/{id}
You can attach recurrence rules to existing tasks. When a recurring task is marked as done, the scheduler will automatically reset it to new on the next occurrence date.
GET /api/v1/tasks/{id}/recurrence– get recurrence settingsPUT /api/v1/tasks/{id}/recurrence– set or replace recurrenceDELETE /api/v1/tasks/{id}/recurrence– remove recurrence
| type | fields | description |
|---|---|---|
| daily | interval (int >0) |
every N days |
| monthly | day_of_month (1-30) |
each month on the given day |
| weekly | week_days (1..7, 1=Monday) |
on selected weekdays |
| specific_dates | dates (array of YYYY-MM-DD) |
only on exact dates |
| even_odd | parity ("even"/"odd") |
on even or odd days of the month |
# Set daily recurrence every 2 days
curl -X PUT /api/v1/tasks/1/recurrence -H "Content-Type: application/json" \
-d '{"type":"daily","interval":2}'
# Set monthly on 15th
curl -X PUT /api/v1/tasks/1/recurrence -d '{"type":"monthly","day_of_month":15}'
# Set weekly on Mon/Wed/Fri
curl -X PUT /api/v1/tasks/1/recurrence -d '{"type":"weekly","week_days":[1,3,5]}'
# Set specific dates
curl -X PUT /api/v1/tasks/1/recurrence -d '{"type":"specific_dates","dates":["2026-06-01","2026-07-01"]}'
# Set even days
curl -X PUT /api/v1/tasks/1/recurrence -d '{"type":"even_odd","parity":"even"}'