APIドキュメント

Resolflow REST APIとWebSocket統合の技術リファレンス

内部APIリファレンス

このドキュメントは、プラットフォームの仕組みを理解するためのResolflowの内部REST APIを説明します。Resolflowは自己完結型アプリケーションであり、サードパーティ統合用のプラットフォームAPIではありません。プログラムでResolflowと対話する必要がある場合は、代わりにMCPプロトコルを使用してください。

API概要

アーキテクチャと機能

RESTful設計

標準HTTPメソッド(GET、POST、PATCH、DELETE)

リアルタイム更新

ライブ通知用のWebSocket

JSONレスポンス

一貫したデータ形式

認証

デュアルトークンによるJWTベースの認証

トークンシステム

アクセストークン
15分

HTTP-onlyクッキーに保存される短命トークン。APIリクエストに使用。

リフレッシュトークン
7日

再ログインせずに新しいアクセストークンを取得するための長命トークン。

# ログインしてトークンを取得

POST /api/auth/login
Content-Type: application/json

{
  "email": "[email protected]",
  "password": "yourpassword"
}

Response:
{
  "user": {
    "id": "uuid",
    "email": "[email protected]",
    "name": "John Doe"
  },
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "eyJhbGciOiJIUzI1NiIs..."
}

# リクエストでアクセストークンを使用

GET /api/workspaces
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

コアAPIエンドポイント

主なリソースと操作

認証

POST
/api/auth/register

新規アカウントを作成

POST
/api/auth/login

メール/パスワードでログイン

POST
/api/auth/refresh

新しいアクセストークンを取得

POST
/api/auth/logout

トークンをクリアしてセッションを終了

GET
/api/auth/me

現在のユーザー情報を取得

ワークスペース

GET
/api/workspaces

すべてのワークスペースを一覧表示

GET
/api/workspaces/:id

ワークスペースの詳細を取得

POST
/api/workspaces

新規ワークスペースを作成

PATCH
/api/workspaces/:id

ワークスペースを更新

DELETE
/api/workspaces/:id

ワークスペースを削除

プロジェクト

GET
/api/workspaces/:workspaceId/projects

ワークスペースのプロジェクトを一覧表示

POST
/api/workspaces/:workspaceId/projects

プロジェクトを作成

PATCH
/api/projects/:id

プロジェクト設定を更新

タスクとToDo

GET
/api/projects/:projectId/tasks

タスクを一覧表示

POST
/api/projects/:projectId/tasks

タスクを作成

GET
/api/tasks/:taskId/todos

タスクのToDoを一覧表示

PATCH
/api/todos/:id

ToDoのステータスを更新

エージェントと接続

GET
/api/workspaces/:workspaceId/agents

MCPエージェントを一覧表示

POST
/api/projects/:projectId/tokens

MCPトークンを生成

GET
/api/workspaces/:workspaceId/repos

接続されたGitHubリポジトリを一覧表示

オーケストレーター

POST
/api/orchestrator/suggest-tasks

AIによるタスク生成

GET
/api/orchestrator/inbox

オーケストレーターメッセージを取得

POST
/api/orchestrator/ask

オーケストレーターにガイダンスを求める

レポートと分析

GET
/api/projects/:projectId/reports

レポートを一覧表示

GET
/api/reports/:id

レポートの詳細を取得

WebSocketリアルタイム更新

ライブ通知とデータ同期

WebSocketサーバーに接続して、タスク、ToDo、オーケストレーターメッセージ、レポートのリアルタイム更新を取得します。

# WebSocketに接続

// Send authentication
{
  "type": "auth",
  "token": "your-access-token"
}

// Subscribe to workspace updates
{
  "type": "subscribe",
  "workspaceId": "workspace-uuid"
}

// Receive updates
{
  "type": "task_updated",
  "data": {
    "taskId": "uuid",
    "status": "in_progress",
    "updatedBy": "agent-name"
  }
}

イベントタイプ

task_created

新しいタスクが追加されました

task_updated

タスクステータスが変更されました

todo_updated

ToDoの進捗更新

orchestrator_message

AIからの新しいガイダンス

report_generated

新しい分析レポート

loop_signal

エージェントの停滞を検出

例: タスクを作成

完全なリクエストとレスポンスのフロー

リクエスト

POST /api/projects/550e8400-e29b-41d4-a716-446655440000/tasks
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json

{
  "title": "Add dark mode support",
  "description": "Implement dark mode toggle with system preference detection",
  "type": "feature",
  "priority": "medium"
}

レスポンス(201 Created)

{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "title": "Add dark mode support",
  "description": "Implement dark mode toggle with system preference detection",
  "type": "feature",
  "priority": "medium",
  "status": "not_started",
  "projectId": "550e8400-e29b-41d4-a716-446655440000",
  "createdBy": "user-uuid",
  "createdAt": "2024-02-12T10:30:00Z",
  "updatedAt": "2024-02-12T10:30:00Z"
}

レート制限とベストプラクティス

API使用のガイドライン

レート制限

現在、セルフホストインスタンスにはレート制限は適用されていません。本番環境のデプロイでは、インフラに基づいてレート制限の実装を検討してください。

ベストプラクティス

  • • ポーリングの代わりにリアルタイムデータにWebSocketを使用
  • • クライアント側でレスポンスをキャッシュ(React Queryが処理)
  • • 可能な場合は操作をバッチ処理(ToDoの一括作成)
  • • インターセプターでトークン更新を自動的に処理
  • • より良いUXのために楽観的更新を使用

エラー処理

標準HTTPステータスコード:

  • • 200 - 成功
  • • 201 - 作成済み
  • • 400 - 不正なリクエスト(検証エラー)
  • • 401 - 認証されていません(無効/期限切れトークン)
  • • 403 - 禁止(権限不足)
  • • 404 - 見つかりません
  • • 500 - サーバーエラー