> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 開発ガイド

> アプリケーションにAPIを統合する

# 開発ガイド

このガイドでは、APIサービスをアプリケーションに統合する方法を説明します。

## 非同期処理

APIは非同期処理モデルを使用しています：

1. タスクを送信：生成リクエストを送信してタスクIDを受け取る
2. ステータスをポーリング：定期的にタスクのステータスを確認する
3. 結果を取得：タスクが完了したら生成結果を取得する

### ポーリングの例

```python theme={null}
import time
import requests

def wait_for_completion(api_key, task_id, max_wait=300):
    """Poll the task until it completes"""
    url = f"https://api.apimart.ai/v1/tasks/{task_id}"
    headers = {"Authorization": f"Bearer {api_key}"}
    start_time = time.time()

    while time.time() - start_time < max_wait:
        data = requests.get(url, headers=headers).json()["data"]
        status = data["status"]

        if status == "completed":
            return data["result"]
        elif status in ("failed", "cancelled"):
            raise Exception(f"Task {status}: {data.get('error')}")

        time.sleep(2)  # wait 2 seconds before polling again

    raise Exception("Task timeout")
```

## エラー処理

### よくあるエラー

| ステータス | 説明            | 解決方法                   |
| ----- | ------------- | ---------------------- |
| 400   | 無効なリクエストパラメータ | リクエストパラメータとフォーマットを確認する |
| 401   | 認証失敗          | APIキーを確認する             |
| 402   | 残高不足          | アカウント残高をチャージする         |
| 429   | レート制限超過       | リクエストの頻度を減らす           |
| 500   | サーバーエラー       | 後で再試行する                |

### 例

```python theme={null}
import requests

response = requests.post(
    "https://api.apimart.ai/v1/images/generations",
    headers={"Authorization": f"Bearer {api_key}"},
    json={"model": "gpt-4o-image", "prompt": "a cute panda"},
)

if response.status_code != 200:
    error = response.json().get("error", {})
    if response.status_code == 401:
        print("Invalid API key")
    elif response.status_code == 402:
        print("Insufficient account balance")
    else:
        print(f"Error: {error.get('message')}")
```

## ベストプラクティス

1. キャッシング：生成された画像/動画のリンクは24時間有効です
2. リトライ：一時的なエラーには指数バックオフを実装する
3. モニタリング：API使用状況とクォータを定期的に確認する
4. セキュリティ：APIキーを安全に保管する

## サポート

開発中に問題が発生した場合は、以下の方法でサポートを受けられます：

* メール：[zhihong@apimart.ai](mailto:zhihong@apimart.ai)
* ライブチャット：ウェブサイトにアクセス
* ドキュメント：完全なAPIドキュメントを参照
