長時間実行オペレーションのポーリング

このページでは、非同期メソッドの完了ステータスを判断する方法について説明します。これらのメソッドは、オペレーションの進行状況とその最終ステータスに関する情報を提供する長時間実行オペレーションを返します。

次のメソッドは、長時間実行オペレーションを返します。

  • CreateKey
  • UpdateKey
  • DeleteKey
  • UndeleteKey

これらのメソッドのいずれかにリクエストを送信すると、成功した場合、メソッドは name フィールドにオペレーション識別子を返します。これは、サーバーで進行中の作業を表します。例:

{
  "name": "operations/akmf.6573437d-47c1-42c4-b817-0562f514f6ff"
}

オペレーションのステータスを確認するには、name フィールドの値を使用して operations.get メソッドを使用します。

  gcurl https://apikeys.googleapis.com/v2/operations/akmf.6573437d-47c1-42c4-b817-0562f514f6ff

オペレーションをポーリングするには、レスポンスに "done": true が含まれるまで、10 秒のバックオフを指定して operations.get メソッドを繰り返し呼び出すことをおすすめします。

{
  "name": "operations/akmf.6573437d-47c1-42c4-b817-0562f514f6ff",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.api.apikeys.v2.Key",
    "name": "projects/103621867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2",
    "keyString": "----REDACTED----",
    "createTime": "2019-02-04T23:56:28.531Z",
    "uid": "b7ff1f9f-8275-410a-94dd-3855ee9b5dd2",
    "updateTime": "2019-02-04T23:56:28.531Z",
    "restrictions": {
      "browserKeyRestrictions": {
      }
    },
    "etag": "k0bsYGkIvSxDVwNxyw49NQ=="
  }
}