TaskLeef API 문서

할 일, 프로젝트, Kanban 보드를 관리하기 위한 REST API

마지막 업데이트:

인증

API는 두 가지 인증 방법을 지원합니다:

1. API 키 인증 (권장)

Generate an API key from your Settings page and include it in the X-API-Key header:

curl -H "X-API-Key: your-api-key" \
  https://taskleef.com/api/todos

2. JWT 베어러 토큰

브라우저 기반 애플리케이션의 경우 로그인 엔드포인트를 통해 인증합니다:

curl -X POST https://taskleef.com/api/login \
  -H "Content-Type: application/json" \
  -d '{"username": "your-username", "password": "your-password"}'

그런 다음 이후 요청에 토큰을 포함하세요:

curl -H "Authorization: Bearer your-jwt-token" \
  https://taskleef.com/api/todos

할 일

GET/api/todos

인증된 사용자의 모든 할 일을 가져옵니다.

curl -H "X-API-Key: your-api-key" \
  https://taskleef.com/api/todos
GET/api/todos/{id}

ID로 특정 할 일을 가져옵니다.

GET/api/inbox

어떤 프로젝트에도 할당되지 않은 할 일을 가져옵니다.

POST/api/todos

새 할 일을 만듭니다.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "Buy groceries", "description": "Milk, eggs, bread"}' \
  https://taskleef.com/api/todos

요청 본문

필드유형필수설명
titlestringYesTodo title
descriptionstringNoDetailed description
dueDateISO 8601NoDue date/time
prioritystringNoLow, Medium, High, or Urgent
projectIdUUIDNoAssign to a project
PUT/api/todos/{id}

기존 할 일을 업데이트합니다.

PATCH/api/todos/{id}/complete

할 일 완료 상태를 전환합니다.

curl -X PATCH -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"isCompleted": true}' \
  https://taskleef.com/api/todos/{id}/complete
DELETE/api/todos/{id}

할 일을 삭제합니다.

POST/api/todos/{parentId}/subtasks

상위 할 일 아래에 하위 작업을 만듭니다.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "Subtask title"}' \
  https://taskleef.com/api/todos/{parentId}/subtasks

프로젝트

GET/api/projects

인증된 사용자의 모든 프로젝트를 나열합니다.

POST/api/projects

새 프로젝트를 만듭니다.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "Work Tasks", "description": "Tasks for work"}' \
  https://taskleef.com/api/projects
GET/api/projects/{id}

특정 프로젝트와 그 할 일을 가져옵니다.

PUT/api/projects/{id}

프로젝트를 업데이트합니다.

DELETE/api/projects/{id}

프로젝트를 삭제합니다(할 일은 받은편지함으로 이동됩니다).

Kanban 보드

GET/api/boards

사용자가 액세스할 수 있는 모든 보드를 나열합니다.

POST/api/boards

새 보드를 만듭니다.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "Sprint Board", "projectId": "project-uuid"}' \
  https://taskleef.com/api/boards
GET/api/boards/{id}

특정 보드를 가져옵니다.

GET/api/boards/{boardId}/columns

보드의 모든 열을 가져옵니다.

GET/api/boards/{boardId}/todos

이 보드에 카드가 있는 모든 할 일을 가져옵니다.

POST/api/boards/{boardId}/columns

보드에 새 열을 만듭니다.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "In Progress", "wipLimit": 3}' \
  https://taskleef.com/api/boards/{boardId}/columns
PUT/api/columns/{id}

열을 업데이트합니다(제목, WIP 한도, 완료 기준).

GET/api/columns/{columnId}/cards

열의 모든 카드를 가져옵니다.

DELETE/api/columns/{id}

열을 삭제합니다.

카드

카드는 Kanban 보드의 할 일을 나타냅니다. 하나의 할 일은 여러 보드에 카드를 가질 수 있습니다.

POST/api/columns/{columnId}/cards

열에서 할 일에 대한 카드를 만듭니다.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"todoId": "todo-uuid"}' \
  https://taskleef.com/api/columns/{columnId}/cards
PUT/api/cards/{id}

카드를 업데이트합니다(다른 열 또는 하위 열로 이동).

# Move card to a different column
curl -X PUT -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"columnId": "new-column-uuid", "subColumn": "Inbox"}' \
  https://taskleef.com/api/cards/{id}

# Move card to Done subColumn
curl -X PUT -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"subColumn": "Done"}' \
  https://taskleef.com/api/cards/{id}

하위 열 값

  • Inbox - Active items in the column
  • Done - Completed items within the column
  • Blocked - Items waiting on external dependencies
DELETE/api/cards/{id}

보드에서 카드를 제거합니다(할 일은 삭제되지 않습니다).

태그

GET/api/tags

인증된 사용자의 모든 태그를 나열합니다.

POST/api/tags

새 태그를 만듭니다.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"name": "urgent"}' \
  https://taskleef.com/api/tags
PUT/api/tags/{id}

태그를 업데이트합니다.

DELETE/api/tags/{id}

태그를 삭제합니다.

댓글

GET/api/todos/{todoId}/comments

할 일의 모든 댓글을 가져옵니다.

POST/api/todos/{todoId}/comments

할 일에 댓글을 추가합니다.

curl -X POST -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"text": "This is my comment"}' \
  https://taskleef.com/api/todos/{todoId}/comments
PUT/api/comments/{id}

댓글을 업데이트합니다.

DELETE/api/comments/{id}

댓글을 삭제합니다.

응답 형식

성공 응답

성공한 요청은 요청된 데이터와 함께 JSON을 반환합니다:

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Buy groceries",
  "description": "Milk, eggs, bread",
  "isCompleted": false,
  "createdAt": "2024-01-15T10:30:00Z"
}

오류 응답

오류는 적절한 HTTP 상태 코드를 반환합니다:

  • 400 - Bad Request (invalid input)
  • 401 - Unauthorized (missing or invalid authentication)
  • 403 - Forbidden (insufficient permissions)
  • 404 - Not Found
  • 500 - Internal Server Error

Need help? Check your Settings to manage API keys.