本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

工作

使用工作 API 來檢閱工作詳細資料。如需使用工作的詳細資訊、請參閱工作物件 API 和非同步處理。

擷取工作

使用下表所列的方法擷取所有工作或工作子集。指定「租戶 ID 」只會傳回屬於該租戶的工作。

HTTP 方法 路徑 說明 參數

《 Get 》(取得)

/v2.1 / 工作機會

擷取工作。

「租戶 ID 」:(選用)歸還屬於指定租戶的區塊存放區。「偏移」和「限制」、請參閱 "常見分頁"

必要的要求內容屬性:「無」

  • 索取本文範例: *

none
  • 回應本文範例: *

{
  "status": {
    "user_message": "Okay. Returned 1 record.",
    "verbose_message": "",
    "code": 200
  },
  "result": {
    "returned_records": 1,
    "total_records": 2625,
    "sort_by": "created",
    "order_by": "desc",
    "offset": 0,
    "limit": 1,
    "records": [
      {
        "id": "5ed72c8c6342e90001439d54",
        "action": "create",
        "job_summary": "Create request is successfully submitted",
        "created": "2020-06-03T04:52:28.478Z",
        "updated": "2020-06-03T04:52:32.636Z",
        "object_id": "5ed72c8c6342e90001439d55",
        "object_type": "sg_buckets",
        "object_name": "test1234",
        "status": "successful",
        "status_detail": "Creation of s3 bucket 'test1234' completed successfully.",
        "last_error": "",
        "user_id": "5e85225af038943eb4b74684",
        "job_tasks": [
          {
            "id": "5ed72c8c6342e90001439d57",
            "job_id": "5ed72c8c6342e90001439d54",
            "action": "create",
            "driver": "storagegrid_ansible",
            "object_id": "5ed72c8c6342e90001439d55",
            "object_type": "sg_buckets",
            "resource_type": "sg_bucket",
            "status": "successful",
            "status_detail": "Worker completed task successfully.",
            "last_error": "",
            "user_id": "5e85225af038943eb4b74684",
            "request_payload": {
              "grid_account_id": "05336917559886003354",
              "grid_admin_base_url": "https://sggmi-dev.dev.ausngs.netapp.au/api/v3",
              "org_password": "netapp01",
              "org_username": "root",
              "s3_bucket_name": "test1234"
            }
          }
        ]
      }
    ]
  }
}

依工作 ID 擷取工作

使用下表所列的方法、依 ID 擷取工作。

HTTP 方法 路徑 說明 參數

《 Get 》(取得)

/`v2.1 / 工作 / { id } '

依 ID 擷取工作。

「 ID (字串)」:工作的唯一識別碼。

必要的要求內容屬性:「工作識別碼」

  • 索取本文範例: *

none
  • 回應本文範例: *

{
  "status": {
    "user_message": "Okay. Returned 1 record.",
    "verbose_message": "",
    "code": 200
  },
  "result": {
    "total_records": 1,
    "records": [
      {
        "id": "5e66f18e09a74c0001b89640",
        "action": "create",
        "job_summary": "Create S3 bucket for Sub Tenant",
        "created": "2020-03-10T01:46:54.097Z",
        "updated": "2020-03-10T01:46:57.664Z",
        "object_id": "5e66f18e09a74c0001b89641",
        "object_type": "sg_buckets",
        "status": "successful",
        "status_detail": "Creation of s3 bucket 'mys3bucket' completed successfully.",
        "last_error": "",
        "user_id": "5bbee380a2df7a04d43acaee",
        "job_tasks": [
          {
            "id": "5e66f18e09a74c0001b89642",
            "job_id": "5e66f18e09a74c0001b89640",
            "action": "create",
            "driver": "storagegrid_ansible",
            "object_id": "5e66f18e09a74c0001b89641",
            "object_type": "sg_buckets",
            "resource_type": "sg_bucket",
            "status": "successful",
            "status_detail": "Worker completed task successfully.",
            "last_error": "",
            "user_id": "5bbee380a2df7a04d43acaee",
            "request_payload": {
              "grid_account_id": "47490102387197219062",
              "grid_admin_base_url": "https://sggmi-dev.dev.ausngs.netapp.au/api/v3",
              "org_password": "netapp01",
              "org_username": "root",
              "s3_bucket_name": "mys3bucket"
            }
          }
        ]
      }
    ]
  }
}

工作物件 API 和非同步程序

有些 API 呼叫(尤其是用於新增或修改資源的呼叫)可能需要比其他呼叫更長的時間才能完成。NetApp 服務引擎會以非同步方式處理這些長時間執行的要求。

在非同步執行 API 呼叫之後、 HTTP 回應代碼 202 表示該要求已成功驗證並接受、但尚未完成。此要求會以背景工作的形式處理、並在對用戶端的初始 HTTP 回應之後繼續執行。回應包括繫留要求的工作物件、包括其唯一識別碼。

查詢與 API 要求相關聯的工作物件

HTTP 回應中傳回的工作物件包含數個內容。您可以查詢狀態內容、以判斷要求是否成功完成。工作物件可以處於下列其中一種狀態:

  • 正常

  • 警告

  • 部分失敗

  • 錯誤

輪詢工作物件以偵測工作的終端機狀態時、您可以使用兩種技巧:成功或失敗:

  • 標準輪詢要求:立即傳回目前的工作狀態。

  • 長時間輪詢要求:當工作狀態移至正常、錯誤或部分失敗時。

非同步要求的步驟

您可以使用下列高階程序來完成非同步 API 呼叫:

  1. 發出非同步 API 呼叫。

  2. 接收 HTTP 回應 202 、表示已成功接受要求。

  3. 從回應本文擷取工作物件的識別碼。

  4. 在迴圈內、等待工作物件達到終端機狀態正常、錯誤或部分失敗。

  5. 驗證工作的終端機狀態並擷取工作結果。