API 要求を制御する入力変数
API 呼び出しの処理方法は、 HTTP 要求で設定されたパラメータと変数を使用して制御できます。
HTTP メソッド
次の表に、 ONTAP REST API でサポートされる HTTP メソッドを示します。
REST エンドポイントのそれぞれですべての HTTP メソッドを使用できるわけではありません。また、 PATCH と DELETE はどちらもコレクションで使用できます。詳細については、「 _ オブジェクト参照と Access_ 」を参照してください。 |
HTTP メソッド | 説明 |
---|---|
取得 |
リソースインスタンスまたはコレクションのオブジェクトプロパティを取得します。 |
投稿( Post ) |
指定した入力に基づいて新しいリソースインスタンスを作成します。 |
パッチ |
指定した入力に基づいて既存のリソースインスタンスを更新します。 |
削除 |
既存のリソースインスタンスを削除します。 |
頭部 |
実質的には GET 要求を発行しますが、 HTTP ヘッダーのみを返します。 |
オプション( Options ) |
特定のエンドポイントでサポートされる HTTP メソッドを確認します。 |
パス変数
各REST API呼び出しで使用されるエンドポイントパスには、さまざまな識別子を含めることができます。各IDは特定のリソースインスタンスに対応します。たとえば、クラスタIDやSVM IDなどです。
要求ヘッダー
HTTP 要求には複数のヘッダーを含める必要があります。
- コンテンツタイプ
-
要求の本文に JSON が含まれている場合は、このヘッダーを「 application/json 」に設定する必要があります。
- 同意します
-
このヘッダーは 'application/hal+json に設定する必要があります代わりに application/json' に設定した場合 ' 次のレコードのバッチを取得するために必要なリンクを除き 'HAL リンクは返されませんヘッダがこれらの 2 つの値以外のものである場合、応答の「 content-type 」ヘッダのデフォルト値は「 application/hal+json 」になります。
- 承認
-
base64 文字列としてエンコードされたユーザ名とパスワードを使用するベーシック認証を設定する必要があります。例:
Authorization: Basic YWRtaW46cGV0ZXJzb24=
。
本文を要求します
要求の本文の内容は、それぞれの呼び出しに応じて異なります。HTTP 要求の本文は、次のいずれかで構成されます。
-
JSON オブジェクトと入力変数
-
JSON オブジェクトが空です
オブジェクトのフィルタリング
GETメソッドを使用してAPI呼び出しを実行する場合、クエリパラメータを使用して、返されるオブジェクトを任意の属性に基づいて制限またはフィルタリングできます。
1つ以上のパラメータのセットをURL文字列の後ろに追加できます。 ?
を押します。複数のパラメータを指定した場合、クエリパラメータは &
を押します。パラメーター内の各キーと値は、 =
を押します。
たとえば、等号を使用して完全に一致する値を指定できます。
<field>=<value>
より複雑なクエリの場合、追加の演算子は等号の後に配置されます。たとえば、ある値以上の特定のフィールドに基づいてオブジェクトのセットを選択する場合、クエリは次のようになります。
<field>=>=<value>
上記の例に加えて、値の範囲のオブジェクトを返すための追加の演算子も使用できます。次の表に、ONTAP REST APIでサポートされているフィルタ演算子の概要を示します。
通常、設定されていないフィールドはクエリの照合から除外されます。 |
演算子 |
説明 |
= |
等しい |
< |
より小さい |
> |
が次の値より大きい |
>= |
が次の値以下です |
>= |
が次の値以上である必要があります |
! |
と等しくない |
* |
すべてに一致するワイルドカード |
また 'null' キーワードまたはその negation!null' をクエリの一部として使用して ' 特定のフィールドが設定されているかどうかに基づいてオブジェクトのコレクションを返すこともできます
このサイトのREST APIワークフローの例を次に示します。
-
次の条件に基づいてフィルタ:
state
変数を使用してスペアディスクを選択します。
特定のオブジェクトフィールドを要求しています
デフォルトでは、 GET を使用する API 呼び出しを発行すると、オブジェクトを一意に識別する属性のみが HAL 自己リンクとともに返されます。この最小のフィールドセットは、各オブジェクトのキーとして機能し、オブジェクトタイプによって異なります。次の方法で 'fields クエリー・パラメータを使用して ' 追加のオブジェクト・プロパティを選択できます
-
共通または標準のフィールド
最もよく使用されるオブジェクトフィールドを取得するには 'fields=*`` を指定しますこれらのフィールドは、通常、ローカルサーバメモリに保持されるか、ほとんど処理を必要としません。これらのプロパティは、 URL パスキー( UUID )を指定して GET を使用した場合にオブジェクトに対して返されるプロパティと同じです。
-
すべてのフィールド
「 fields=** 」を指定すると、アクセスするために追加のサーバ処理が必要なフィールドも含め、すべてのオブジェクトフィールドが取得されます。
-
カスタムフィールドの選択
希望するフィールドを指定するには 'field=<field_name>` を使用します複数のフィールドを要求する場合は、スペースを入れずにカンマで区切る必要があります。
ベストプラクティスとして、必要なフィールドを常に個別に指定することを推奨します。一連の共通フィールドまたはすべてのフィールドを取得するのは、必要な場合だけにしてください。共通として分類され 'fields =*' を使用して返されるフィールドは ' 内部パフォーマンス分析に基づいてネットアップが決定しますフィールドの分類は、今後のリリースで変更される可能性があります。
出力セット内のオブジェクトのソート
リソースコレクション内のレコードは、オブジェクトによって定義されたデフォルトの順序で返されます。フィールド名とソート方向を指定して 'ORDER BY クエリー・パラメータを使用すると ' 順序を次のように変更できます
order_by=< フィールド名 >asc|desc
たとえば、タイプフィールドを降順でソートし、 ID を昇順でソートできます。
order_by=type desc, id asc
次の点に注意してください。
-
ソートフィールドを指定しても方向を指定しない場合、値は昇順でソートされます。
-
複数のパラメータを指定する場合は、各フィールドをカンマで区切る必要があります。
オブジェクトのコレクションを取得するときのページ付けです
GET を使用する API 呼び出しを発行して同じタイプのオブジェクトのコレクションにアクセスする場合、 ONTAP では 2 つの制約に基づいて可能なかぎり多くのオブジェクトを返します。これらの各制約は、要求に対する追加のクエリパラメータを使用して制御できます。特定の GET 要求に対する最初の制約に達した時点で要求が終了されるため、返されるレコードの数が制限されます。
すべてのオブジェクトについての処理が完了する前に要求が終了した場合、次のレコードのバッチを取得するために必要なリンクが応答に含まれます。 |
- オブジェクト数の制限
-
デフォルトでは、 ONTAP は GET 要求に対して最大 10 、 000 個のオブジェクトを返します。この制限は 'mAX_records' クエリー・パラメータを使用して変更できます例:
「 mAX_records =20`
実際に返されるオブジェクトの数は、関連する時間の制約やシステム内のオブジェクトの総数に基づいて、有効な最大数よりも少なくなることがあります。
- オブジェクトを読み出す時間を制限しています
-
デフォルトでは、 ONTAP は GET 要求に許可された時間内にできるだけ多くのオブジェクトを返します。デフォルトのタイムアウトは 15 秒です。この制限は、「 return _timeout 」クエリーパラメータを使用して変更できます。例:
re turn _timeout =5
実際に返されるオブジェクトの数は、関連するオブジェクト数の制約やシステム内のオブジェクトの総数に基づいて、有効な最大数よりも少なくなることがあります。
- 結果セットの絞り込み
-
必要に応じて、これらの 2 つのパラメータを追加のクエリパラメータと組み合わせて、結果セットを絞り込むことができます。たとえば、次の例では、指定した時間のあとに生成された EMS イベントを最大 10 件まで返します。
time=> 2018-04-04T15:41:29.140265Z&max_records=10
複数の要求を問題で処理して、オブジェクトをページングできます。以降の API 呼び出しでは、前回の結果セットの最新イベントに基づいて新しい時間の値を使用する必要があります。
サイズのプロパティ
一部の API 呼び出しおよびクエリパラメータでは、入力値として数値が使用されます。バイト単位で整数を指定する代わりに、必要に応じて次の表に示すサフィックスを使用できます。
サフィックス | 説明 |
---|---|
KB |
KB キロバイト( 1024 バイト)またはキビバイト |
MB |
MB ( KB x 1024 バイト)またはメビバイト |
GB |
ギガバイト( MB x 1024 バイト)またはギビバイト |
容量 |
TB ( GB x 1024 バイト)またはテビバイト |
PB |
PB ペタバイト( TB x 1024 バイト)またはペビバイト |