API統合チェックリスト
0)クイックレビュー(誰が何をするか)
- 割り当てられた統合所有者
- 電話での連絡先(24 × 7/労働時間)が規定されています
- 合意されたSLO/SLAおよびリリースサポートウィンドウ
- ステータスページとインシデントチャンネル(電子メール/slack/webhook)
1)アクセス、環境、バージョン
- サンドボックス/ステージング/本番アクセス
- APIバージョンが確認されました:'/v1'/ヘッダ'X-API-Version'
- IPおよびネットワークルールの設定を許可する
- クロックとTZ: UTC、 NTP同期のすべての回
- SemVer SDK/クライアント互換性とバージョンマトリックス検証済み
2)認証とトークン
- Client Credentials/Auth Code+PKCE/API Key/mTLS OAuth2合意されたメカニズム
- アクセストークンの有効期限と更新トークンの回転設定
- APIキーの場合:シークレットは一度表示され、シークレットマネージャに保存されます
- JWKS/JTI/' kid'チェック、± 5分のクロックスキュー
- 'Authorization'ヘッダがログに記録されていない(リビジョン)
bash curl -sS -H "Authorization: Bearer $TOKEN" https://api. example. com/v1/ping
3)セキュリティとプライバシー
- TLS 1。2 +/HSTS、オプションのmTLS
- PII最小化:必要なものだけを送り、ログにマスクを入れます
- 保持および廃棄ポリシー(GDPR/DSAR)文書化
- シークレット回転:アクティブ/ネクストキー、ロールオーバープラン
- 乱用防止:キャプチャ/キーイングスピード/登録制限
4)限界、クォータおよびバックオフ
- 宣言された'X-RateLimit-'/'X-Quota-'ヘッダー
- お客様は429と'再試行'を尊重します'
- 5xx/408/429のみのリトレイ、指数関数バックオフ+ジッタ
- リトライ/タイムリミットセット(例≤ 5リトライ、≤ 60c合計)
5)アイデンポテンスと競合
- すべての書き込み操作は'Idempotency-Key'で送信されます(TTL ≥ 24-72 h)
- 重複競合→409 IDEMP_REPLAY処理
- ETag/' If-Match'が競合アップデートで有効になっています(使用可能な場合)
bash curl -X POST /v1/payments \
-H "Idempotency-Key: pay-<uuid>" \
-d '{"amount":"12. 34","currency":"EUR"}'
6)ペジネーションと増分デルタ
- カーソル/キーセットページネーションを使用('next_cursor'、 'has_more')
- Stable sort '(updated_at、 id)'ドキュメント
- インクリメンタルアップロード:ウォーターマークまたは変更トークン
- オーバーラップ(オーバーラップ1-2分)とdedup by '(id、 version/seq)'
7)エラー形式と診断
- ユニフォームフォーマット'application/problem+json' (RFC 7807)
- フィールドサポート:'error_code'、 'trace_id'、 'retriable'、 'detail'
- エラーマップとクライアントアクションの説明(runbook)
json
{
"type":"https://docs. example. com/errors/validation_failed",
"title":"Validation failed",
"status":422,
"error_code":"VAL_001",
"trace_id":"a1b2c3",
"retriable":false
}
8) Webhooks: 謝辞とリプレイ
- 成功の確認-任意の2xx;enqueueの後の速いACK
- Подпись HMAC ('X-Signature: sha256=……')、'X-Webhook-Id'、 'X-Retry'
- リトレイポリシー:バックオフ+ジッタ、24〜72時間まで
- DLQ+リプレイ:利用可能で検証済み
- レシーバ、TTL ≥リトレイウィンドウでストレージをデダップ
9)観察可能性および追跡
- クライアント/SDKでOpenTelemetryフックを有効にする
- チェーン全体のtrace_id/X-Request-ID相関
- retry_count: 'requests_total'、 'errors_total {status}'、 'latency_p95'、 'retry_count'、 '429_rate'
- 警報:5xx/429スパイク、p95上昇、成功率の低下、webhookの遅れ
promql rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m])
10)性能および安定性
- 接続プール、キープアライブ、可能な限りHTTP/2/3
- Backpressure、クライアントキューは「膨らんでいない」
- サーキットブレーカ/タイムアウト/フォールバックポリシー設定
- 負荷テスト:バースト10 ×、長い接続、コールドスタート
11)データ、通貨、時間
- フォーマット:ISO-8601 UTC、 money-小数文字列/マイナーユニット、ロケールは環境に依存しません
- エンコード/言語は一貫しています(例:メッセージの'Accept-Language'しかし、マシンの'error_code')
- 丸め/コミッションポリシーの文書化
12)和解
- 毎日/毎時チェックサムとの和解
- 和解テスト用のAPI/アップロード (CSV/JSON、マニフェスト/ハッシュ)
- 矛盾-'trace_id'を参照したチケットで'
13)コンプライアンスと法的側面
- API利用規約の受け入れ(公正使用/輸出管理)
- PII/データホルダー-定義された役割とストレージ領域
- インシデントに対する法的保留/監査ログアクションの有効化
14)ドキュメントと開発者ポータル
- OpenAPI/AsyncAPIが関連しています。「copy-paste」の例があります"
- SDK (TS/Py/Java/Go/。NET)-バージョンは一貫性があり、クックブックが利用可能
- Try-itの運動場の仕事、砂のキーは活動的です
- changelog/decrements/roadmapがポータルに表示されます
15)テスト: 、陰性機能、混沌
Functional(機能的)
- CRUD/キーシナリオが渡されました(happy path)
- ペジネーション/カーソル/差分デルタ
負
- 401/403/404/409/422/429/5xxと'再試行'処理
- 不正なWebhook署名、期限切れのトークン、大きなボディ
カオス
- 10-30%イベントをドロップ、順序を変更、1-10分の遅延
- 依存関係を無効にする(PSP/KYC)→正しいフォールバック/エラー
16)受け入れと打ち上げ(go-live)
- 最終PRR(生産準備審査)合格
- カナリア包含:10%→25%→50%→100%
- SLO信号の自動ロールバック(エラー/レイテンシ/429)
- インシデントコンタクトマトリックスとエスカレーションパスが公開
- パイロット生成後のCAPAバックログ
17)操作およびサポート
- Runbook/Playbook: 「5xx spike」、 「429 storm」、 「webhook backlog」、 「timeout」
- 通常のSLO/エラー予算レポート
- スケジュールで秘密と鍵を回転させる
- Version Depressions/Migrations Plan合意済み(日没)
18)アーティファクトパターン
Env-configテンプレート
yaml api:
base_url: https://api. example. com/v1 timeout_ms: 10000 retries: { max: 5, strategy: expo-jitter }
auth:
kind: oauth2 token_url: https://auth. example. com/oauth2/token scopes: [wallet:read, wallet:write]
webhooks:
secret_ref: secret/webhook-hmac parallelism: 10 max_body_kb: 256
リトレイポリシー(擬似)
json
{"initial":1,"max":60,"factor":2. 0,"jitter":0. 2,"retriable":["5xx","408","429"]}
19)最終チェックリスト「署名のための」
- Environments/versions/keys/allowlist ready
- Auth/JWT/keys/mTLS構成およびテスト済み
- 制限/クォータ/リトレイ/idempotency実装
- ページネーション/カーソル/デルタはデータで動作します
- Webhooks:署名、リプレイ、DLQ/リプレイ検証済み
- エラー'problem+json'、 'trace_id'はすべてのログに
- ダッシュボード/アラートが収集され、OTelが有効になっている
- 渡される負荷/陰性/カオステスト
- 和解とレポートが収束し、ランブックが形式化される
- PRR/canary/rollback-plan ready、指定された通話中の連絡先
合計
このチェックリストは、API統合の技術的、運用的およびコンプライアンスの側面をカバーしています。上から下までアイテムを通過し、制限のチェック、idempotencyとwebhookを自動化し、観測性とロールバック計画を可能にします。