Юрий Белк – Full stack Developer (страница 31)
– 401 unauthorized
– 400 validation_error
GET /api/v1/workspaces
Список workspace, где пользователь состоит.
Responses:
– 200 list (можно без пагинации, если их мало, но лучше с limit/cursor)
GET /api/v1/workspaces/{workspaceId}
Получить workspace.
Responses:
– 200
– 403 forbidden (если нет доступа)
– 404 not_found (можно вернуть 404 вместо 403, чтобы не “палить” существование)
POST /api/v1/workspaces/{workspaceId}/members
Добавить участника (owner/admin).
Request:
– user_email или user_id
– role (admin/member)
Responses:
– 201
– 403
– 404
– 409 (уже участник)
PATCH /api/v1/workspaces/{workspaceId}/members/{userId}
Изменить роль.
Responses:
– 200
– 403
– 409 (например, нельзя понизить owner “в никуда”)
DELETE /api/v1/workspaces/{workspaceId}/members/{userId}
Удалить участника.
Responses:
– 204
– 403
8.6.3. Projects
POST /api/v1/workspaces/{workspaceId}/projects
Создать проект.
Headers:
– Idempotency-Key (рекомендуется)
Responses:
– 201
– 403
– 400
GET /api/v1/workspaces/{workspaceId}/projects
Список проектов (с фильтром status=active|archived).
Responses:
– 200 paginated list
GET /api/v1/projects/{projectId}
Получить проект.
Responses:
– 200
– 403/404
PATCH /api/v1/projects/{projectId}
Обновить проект (name/description/status).
Responses:
– 200
– 400
– 403
8.6.4. Tasks
POST /api/v1/projects/{projectId}/tasks
Создать задачу в проекте.
Headers:
– Idempotency-Key (рекомендуется)
Request:
– title (required)
– description (optional)