コンテンツにスキップ

API 定義

エンドポイント一覧

メソッド パス 説明
GET /api/v1/ping ヘルスチェック
POST /api/v1/generation_logs アバターデータのアップロード

GET /api/v1/ping

サーバーが起動していることを確認する。

レスポンス

{ "message": "pong" }
ステータスコード 説明
200 OK 正常

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