ONTAP tools REST API実装の詳細
REST はオープン スタンダードな技術とベストプラクティスを確立しますが、各 API の具体的な実装は設計上の選択によって異なる場合があります。ONTAP tools for VMware vSphere 10 REST API を使用する前に、その設計について理解しておく必要があります。
REST API には、vCenters やアグリゲートなど、複数のリソースカテゴリが含まれています。詳細については、"API リファレンス" を参照してください。
REST API へのアクセス方法
ONTAP tools for VMware vSphere 10 REST API には、ONTAP tools の IP アドレスとポートを使用してアクセスできます。完全な URL は、以下のいくつかの部分から構成されています。
-
ONTAP tools の IP アドレスとポート
-
APIのバージョン
-
リソースカテゴリ
-
特定のリソース
初期設定時にIPアドレスを設定する必要がありますが、ポート番号は8443に固定されています。URLの最初の部分は、ONTAP tools for VMware vSphere 10の各インスタンスで共通です。エンドポイント間で変更されるのは、リソースカテゴリと特定のリソースのみです。
|
|
以下の例に示されているIPアドレスとポート番号は、あくまで例示目的です。ご使用の環境に合わせてこれらの値を変更する必要があります。 |
https://10.61.25.34:8443/virtualization/api/v1/auth/login
このURLを使用すると、POSTメソッドでアクセストークンをリクエストできます。
https://10.61.25.34:8443/virtualization/api/v1/vcenters
このURLを使用して、GETメソッドで定義済みのvCenterサーバーインスタンスのリストをリクエストできます。
HTTP の詳細
ONTAP tools for VMware vSphere 10 REST API は、HTTP および関連するパラメータを使用して、リソースインスタンスとコレクションに対して操作を実行します。HTTP 実装の詳細については、以下に示します。
HTTPメソッド
REST API でサポートされている HTTP メソッド(動詞)を以下の表に示します。
| 方法 | CRUD | 説明 |
|---|---|---|
GET |
読み取り |
リソースインスタンスまたはコレクションのオブジェクトプロパティを取得します。コレクションで使用する場合、これはリスト操作とみなされます。 |
POST |
作成 |
入力パラメータに基づいて新しいリソースインスタンスを作成します。 |
PUT |
更新 |
指定されたJSONリクエストボディを使用して、リソースインスタンス全体を更新します。ユーザーが変更できないキー値は保持されます。 |
PATCH |
更新 |
リクエストで選択された変更内容をリソースインスタンスに適用するよう要求します。 |
DELETE |
削除 |
既存のリソース インスタンスを削除します。 |
リクエストヘッダーとレスポンスヘッダー
次の表は、REST API で使用される最も重要な HTTP ヘッダーをまとめたものです。
| ヘッダー | Type | 使用上の注意 |
|---|---|---|
Accept |
要求 |
これは、クライアントアプリケーションが受け入れることができるコンテンツの種類です。有効な値には '*/*` または `application/json`が含まれます。 |
x-auth |
要求 |
クライアントアプリケーションを通じてリクエストを発行したユーザーを識別するアクセストークンが含まれています。 |
Content-Type |
応答 |
サーバーから返された値( `Accept`リクエストヘッダーに基づく)。 |
HTTPステータスコード
REST API で使用される HTTP ステータスコードについて、以下に説明します。
| Code | 説明 | 説明 |
|---|---|---|
200 |
OK |
新しいリソースインスタンスを作成しない呼び出しが成功したことを示します。 |
201 |
Created |
リソースインスタンスの一意の識別子を持つオブジェクトが正常に作成されました。 |
202 |
Accepted |
リクエストは承認され、リクエストを実行するためのバックグラウンドジョブが作成されました。 |
204 |
コンテンツなし |
リクエストは成功しましたが、コンテンツは返されませんでした。 |
400 |
Bad request |
要求の入力が認識されないか不適切です。 |
401 |
Unauthorized |
ユーザーには権限が付与されていないため、認証を行う必要があります。 |
403 |
Forbidden |
認証エラーのためアクセスが拒否されました。 |
404 |
Not found |
リクエストで参照されているリソースは存在しません。 |
409 |
競合 |
オブジェクトがすでに存在するため、オブジェクトの作成に失敗しました。 |
500 |
内部エラー |
サーバで一般的な内部エラーが発生しました。 |
認証
REST API に対するクライアントの認証は、アクセストークンを使用して実行されます。トークンおよび認証プロセスの関連する特性は次のとおりです。
-
クライアントは、ONTAP tools Manager の管理者認証情報(ユーザー名とパスワード)を使用してトークンを要求する必要があります。
-
トークンはJSON Web Token(JWT)形式でフォーマットされます。
-
各トークンは60分後に有効期限が切れます。
-
クライアントからの API リクエストには、 `x-auth`リクエストヘッダーにトークンを含める必要があります。
アクセストークンの要求と使用例については、"最初のREST API呼び出し"を参照してください。
同期リクエストと非同期リクエスト
ほとんどの REST API 呼び出しは迅速に完了するため、同期的に実行されます。つまり、リクエストが完了するとステータスコード(200 など)を返します。処理に時間がかかるリクエストは、バックグラウンドジョブを使用して非同期で実行されます。
非同期で実行されるAPI呼び出しを発行した後、サーバーはHTTPステータスコード202を返します。これは、リクエストが受理されたものの、まだ完了していないことを示しています。バックグラウンドジョブを照会することで、成功または失敗などのステータスを確認できます。
非同期処理は、データストアやvVol操作など、長時間実行される複数の種類の操作に使用されます。詳細については、SwaggerページのREST APIのジョブマネージャーカテゴリを参照してください。