مستندات API تسک‌لیف TaskLeef

REST API برای مدیریت کارها، پروژه‌ها و بردهای kanban

آخرین به‌روزرسانی:

احراز هویت

این API از دو روش احراز هویت پشتیبانی می‌کند:

۱. احراز هویت با کلید 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

۲. توکن حامل 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}

دریافت یک کار مشخص با شناسه.

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.