エンドツーエンド

3つの curl コールで行う完全な統合。

BASE_URL="https://api.morphic.com/v1/partner"  # a mor_test_ key uses https://api.morphic.today/v1/partner

# 1. このワークフローに必要なもの
curl -s "$BASE_URL/workflows/$WORKFLOW_ID/inputs" \
  -H "Authorization: Bearer $MORPHIC_API_KEY"

# 2. 実行を開始する
curl -s -X POST "$BASE_URL/workflow-runs" \
  -H "Authorization: Bearer $MORPHIC_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "org_id": "'"$ORG_ID"'",
    "project_id": "'"$PROJECT_ID"'",
    "workflow_id": "'"$WORKFLOW_ID"'",
    "idempotency_key": "story-48213-v2",
    "inputs": {
      "story_document": "https://cdn.example.com/stories/48213.pdf",
      "tone": "thriller"
    }
  }'

# 3. 端末ステータスになるまで追跡する
curl -s "$BASE_URL/workflow-runs/$RUN_ID?wait=45" \
  -H "Authorization: Bearer $MORPHIC_API_KEY"

本番向けの統合では

  • 一つの idempotency_key 作業単位ごとに、独自のレコードとともに保存するため、タイムアウト後の再試行でも2回目の実行は開始されません。
  • 何をするよりも先に、そのレコードに実行IDを保持します — それは、すでに課金対象となっている作業を参照する唯一の手がかりです。
  • Webhook を使い、まだ通知を受け取っていない実行のフォールバックとしてポーリングを残します。
  • 到着時に自分のストレージへダウンロードされたアセットは、なぜなら URL 有効期限が切れます。
  • x-morphic-trace-id すべてのレスポンスに記録されます。

このページの内容