基本的な動作の特性
RESTで共通のテクノロジとベストプラクティスは確立されますが、各APIの詳細は設計内容に応じて異なる場合があります。
要求と応答のAPIトランザクション
すべてのREST API呼び出しは、SnapCenter ServerシステムへのHTTP要求として実行され、クライアントへの関連する応答が生成されます。この要求と応答のペアでAPIトランザクションが構成されます。
APIを使用する前に、要求の制御に使用できる入力変数と応答出力の内容を理解しておく必要があります。
CRUD操作のサポート
SnapCenter REST APIで使用できる各リソースへのアクセスはCRUDモデルに基づきます。
-
作成
-
読み取り
-
更新
-
削除
リソースによっては、一部の操作のみがサポートされるものもあります。
オブジェクトID
リソース インスタンスまたはオブジェクトには、作成時に一意の識別子がそれぞれ割り当てられます。ほとんどの場合、識別子は128ビットのUUIDです。これらの識別子は、特定のSnapCenter Server内でグローバルに一意です。
新しいオブジェクト インスタンスを作成するAPI呼び出しを発行すると、関連付けられたIDを含むURLがHTTP応答のlocationヘッダーに記載されて呼び出し元に返されます。リソース インスタンスを以降の呼び出しで参照する際は、この識別子を抽出して使用できます。
|
オブジェクト識別子の内容と内部構造は変更になることがあります。識別子を使用するのは、該当するAPI呼び出しで関連付けられているオブジェクトを参照するために必要な場合だけにしてください。 |
オブジェクトのインスタンスとコレクション
リソース パスとHTTPメソッドに応じて、API呼び出しを特定のオブジェクト インスタンスまたはオブジェクトのコレクションに適用できます。
同期操作と非同期操作
SnapCenterは、クライアントから受信したHTTP要求を同期または非同期で実行します。
同期処理
SnapCenterは要求をすぐに実行し、HTTPステータス コード200または201(成功した場合)を返します。
GETメソッドを使用する要求はすべて、常に同期的に実行されます。また、POSTを使用する要求は、完了までに2秒かからないと予想される場合は同期的に実行するように設計されています。
非同期処理
非同期要求が有効な場合、SnapCenterは、要求を処理するバックグラウンド タスクとそのタスクのアンカーを設定するジョブ オブジェクトを作成します。HTTPステータス コード202がジョブ オブジェクトとともに呼び出し元に返されます。成功したかどうかを判断するには、ジョブの状態を取得する必要があります。
POSTとDELETEの各メソッドを使用する要求は、完了までに2秒以上かかると予想される場合は非同期で実行するように設計されています。
セキュリティ
REST APIのセキュリティは、主にSnapCenterで利用可能な既存のセキュリティ機能に基づいています。APIで使用されるセキュリティは次のとおりです。
Transport Layer Security
SnapCenter Serverとクライアントの間でネットワークを介して送信されるトラフィックは、SnapCenter構成の設定に基づいて、通常はTLSを使用してすべて暗号化されます。
HTTP認証
HTTPレベルでは、APIトランザクションにベーシック認証が使用されます。base64文字列のユーザ名とパスワードを含むHTTPヘッダーが各要求に追加されます。