Τεκμηρίωση API της TaskLeef

REST API για διαχείριση εργασιών, έργων και πινάκων kanban

Τελευταία ενημέρωση:

Έλεγχος ταυτότητας

Το 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 Bearer

Για εφαρμογές που βασίζονται σε πρόγραμμα περιήγησης, πραγματοποιήστε έλεγχο ταυτότητας μέσω του endpoint σύνδεσης:

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}

Ενημερώστε μια κάρτα (μετακίνηση σε διαφορετική στήλη ή subColumn).

# 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}

Τιμές subColumn

  • 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.