API 定義
エンドポイント一覧
| メソッド |
パス |
説明 |
GET |
/api/v1/ping |
ヘルスチェック |
POST |
/api/v1/generation_logs |
アバターデータのアップロード |
GET /api/v1/ping
サーバーが起動していることを確認する。
レスポンス
POST /api/v1/generation_logs
Plabs の AIサーバーからプロンプト情報と生成画像を受け取り、S3 に保存する。
リクエスト形式
Content-Type: multipart/form-data
| フィールド |
型 |
必須 |
説明 |
log_id |
string |
✓ |
生成ログの一意識別子 |
generated_at |
integer(Unix タイムスタンプ秒) |
✓ |
生成日時(Unix エポック秒)。例: 1710504000 |
prompt |
string (JSON) |
✓ |
Plabs 定義のプロンプト JSON 文字列 |
image |
binary |
✓ |
生成されたアバター画像(JPG) |
レスポンス
成功
| ステータスコード |
ボディ |
説明 |
200 OK |
(空) |
プロンプト・画像の両方を S3 に保存成功 |
エラー
| ステータスコード |
ボディ |
説明 |
400 Bad Request |
{ "error": "<メッセージ>" } |
必須フィールドの欠如または不正な形式 |
500 Internal Server Error |
{ "error": "<メッセージ>" } |
S3 保存失敗などの内部エラー |
エラーの詳細は エラーハンドリング を参照。
S3 保存先パス
リクエストの generated_at(UTC に変換)と log_id を組み合わせてパスを決定する。
{yyyy}/{mm}/{dd}/{log_id}/prompt.json
{yyyy}/{mm}/{dd}/{log_id}/image.jpg
処理フロー
sequenceDiagram
participant Plabs as Plabs AI サーバー
participant APIGW as API Gateway
participant Lambda
participant S3
Plabs->>APIGW: POST /api/v1/generation_logs
APIGW->>Lambda: リクエストをプロキシ
Lambda->>Lambda: リクエストをパースし S3 パスを決定<br/>(log_id + generated_at → {yyyy}/{mm}/{dd}/{log_id}/)
Lambda->>S3: PUT prompt.json
S3-->>Lambda: 200 OK
Lambda->>S3: PUT image.jpg
S3-->>Lambda: 200 OK
Lambda-->>APIGW: 200 OK
APIGW-->>Plabs: 200 OK