使う
競合・再送・復帰
通信が途切れたり、他の更新と競合したりしたときに、結果を確かめて、安全にやり直す方法です。更新は、確認しないまま再実行すると、二重に実行されたり、他の人の変更を上書きしたりするおそれがあります。
結果が不明なとき
タイムアウト、接続の断、OUTCOME_UNKNOWNは、操作が実行されなかったことの証明では、ありません。実行されている場合があります。
- 対象、本文、期待する版、
Idempotency-Keyを、保持しておきます。 - 同じ操作の照会、または、同じ内容の再送で、確定した結果を確認します。
- 結果が分かるまで、別のキーで、同じ操作をもう一度実行しません。
結果の確認の方法は、操作によって違います。
| 操作 | 確認の方法 |
|---|---|
| MCPの取込 | imports_statusで、計画の状態を確認する |
| アプリの適用 | 同じfingerprintと、同じキーで、再送する |
| 行の更新・削除 | 同じキーと本文で再送し、現在の行の版を確認する |
権限が失効した後など、確認できないときは、環境管理者に問い合わせてください。
412(版の競合)
412 VERSION_CONFLICTは、期待した版と、現在の版が一致しないことを示します。他の更新が、先に行われています。
- 現在の権限で、対象を再取得します。
- 最新の値と、利用者が変更しようとした内容を、比べます。
- 利用者が解決した、新しい操作にだけ、新しい
Idempotency-Keyを付けます。
期待する版だけを、自動で置き換えて、上書きしないでください。行が削除されたり、見えなくなったりしているときは、404または403として扱います。
認証の期限切れ・失効
- 401で、トークンの期限切れなら、更新または再ログインを行います。更新を、無制限に繰り返しません。
- 失効や、期限切れが続くときは、利用者の再ログインへ戻ります。
- 403のときは、権限を広げようとせず、必要なMFAの実施、または管理者への確認へ案内します。
再送のときの権限
認証が切れたり、権限が変わったりしても、再送のときは、その時点の権限で評価されます。