オブジェクトの参照とアクセス
ONTAP REST API を通じて公開されたリソースインスタンスまたはオブジェクトは、さまざまな方法で参照およびアクセスできます。
オブジェクトのアクセスパス
オブジェクトにアクセスする際のパスのタイプは大きく分けて 2 つあります。
-
プライマリ
オブジェクトが API 呼び出しのプライマリまたは直接のターゲットの場合です。
-
外部
オブジェクトが API 呼び出しのプライマリの参照ではなく、プライマリオブジェクトからリンクされる場合です。つまり、外部またはダウンストリームのオブジェクトであり、プライマリオブジェクトのフィールドを介して参照されます。
UUID を使用したオブジェクトへのアクセス
すべてのオブジェクトには、作成時に一意の識別子が割り当てられます。ほとんどの場合、 UUID は 128 ビットです。割り当てられた UUID の値は変更できず、 ONTAP 内でリソースへのアクセスと管理に内部的に使用されます。そのため、一般に、 UUID はオブジェクトにアクセスするための最も高速で安定した方法となります。
多くのリソースタイプでは、 URL のパスキーの一部として UUID の値を指定することで特定のオブジェクトにアクセスできます。たとえば ' ノード・インスタンスにアクセスするには '`/cluster/nodes/ { uuid}` を使用します
オブジェクトプロパティを使用してオブジェクトにアクセスする
UUID に加え、オブジェクトプロパティを使用してオブジェクトにアクセスすることもできます。ほとんどの場合、 name プロパティを使用すると便利です。たとえば、 URL 文字列でクエリパラメータを使用すると、ノードインスタンスに名前「 /cluster/nodes?name=node_A_1 」でアクセスできます。クエリパラメータに加えて、プライマリオブジェクトのプロパティを使用して外部オブジェクトにアクセスすることもできます。
UUID の代わりに名前やその他のプロパティを使用してオブジェクトにアクセスできますが、次のような欠点があります。
-
名前のフィールドは変更不可ではないため、変更できます。オブジェクトにアクセスする前にオブジェクトの名前が変更された場合、間違ったオブジェクトが返されるか、オブジェクトアクセスエラーが発生します。
この問題は、外部オブジェクトの POST メソッドまたは PATCH メソッド、またはプライマリオブジェクトの GET メソッドで発生することがあります。 -
ONTAP で名前のフィールドを対応する UUID に変換する必要があります。間接アクセスの一種で、パフォーマンス問題になることがあります。
特に、次のいずれかに該当する場合は、パフォーマンスが低下する可能性があります。
-
GET メソッドを使用します
-
多数のオブジェクトにアクセスした場合
-
複雑なクエリを使用します
クラスタコンテキストと SVM コンテキスト
いくつかの REST エンドポイントは、クラスタと SVM の両方をサポートします。これらのエンドポイントのいずれかを使用する場合は、「 cope=[SVM|cluster]] 」の値を使用して API 呼び出しのコンテキストを指定できます。デュアルコンテキストをサポートするエンドポイントの例としては、 IP インターフェイスやセキュリティロールなどがあります。
スコープの値のデフォルト値は、各 API 呼び出しで指定されたプロパティに基づきます。 |
オブジェクトのコレクションで PATCH および DELETE を使用する
リソースインスタンスで PATCH または DELETE をサポートする REST エンドポイントは、オブジェクトのコレクションでも同じメソッドをサポートします。唯一の要件は、 URL 文字列のクエリパラメータを使用して、少なくとも 1 つのフィールドを指定する必要があることです。コレクションに対して PATCH または DELETE を発行すると、内部的には次のように処理されます。
-
クエリベースの GET でコレクションを取得する
-
コレクション内の各オブジェクトに対する PATCH または DELETE 呼び出しのシリアルシーケンス
操作のタイムアウトは、デフォルトの 15 秒で「 return _timeout 」で設定できます。タイムアウトまでに完了しなかった場合は、応答に次のオブジェクトへのリンクが含まれます。処理を続行するには、次のリンクを使用して同じ HTTP メソッドを再発行する必要があります。