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