API の基礎
Web Services API では、 HTTP 通信に要求と応答のサイクルが含まれます。
要求の URL 要素
使用するプログラミング言語やツールに関係なく、 Web Services API の各呼び出しは、 URL 、 HTTP 動詞、および Accept ヘッダーを含む同様の構造を持ちます。
すべての要求には次の例のような URL が含まれ、次の表に示す要素で構成されます。
面積( Area ) | 説明 |
---|---|
HTTP 転送 「 https:// 」 |
Web Services Proxy では HTTP または HTTPS を使用できます。 組み込みの Web Services にはセキュリティ上の理由から HTTPS が必要です。 |
ベース URL とポート webservices.name.com:8443` |
各要求は、 Web Services のアクティブなインスタンスに正しくルーティングされる必要があります。インスタンスの完全修飾ドメイン名( FQDN )または IP アドレス、およびリスニングポートが必要です。デフォルトでは、 Web Services の通信にはポート 8080 ( HTTP )とポート 8443 ( HTTPS )が使用されます。 Web Services Proxy では、どちらのポートもインストール時または wsconfig.xml ファイルで変更可能です。さまざまな管理アプリケーションを実行するデータセンターホストでは、ポートの競合は珍しくありません。 組み込みの Web Services では、コントローラ上のポートは変更できず、デフォルトのポート 8443 を使用してセキュアな接続が確立されます。 |
API パス 「 devmgr/v2/storage-systems 」と入力します |
Web Services API 内の特定の REST リソースまたはエンドポイントに対して要求が送信されます。ほとんどのエンドポイントは次の形式です。 「 devmgr/v2/<resource>/[id]. 」と入力します API パスは次の 3 つの部分で構成されます。
|
サポートされる HTTP 動詞
サポートされる HTTP 動詞には、 GET 、 POST 、および DELETE があります。
-
GET 要求は読み取り専用要求に使用されます。
-
POST 要求はオブジェクトの作成と更新に使用されます。また、セキュリティに影響する可能性がある読み取り要求にも使用されます。
-
DELETE 要求は、通常、オブジェクトを管理対象から削除する場合、オブジェクトを完全に削除する場合、またはオブジェクトの状態をリセットする場合に使用します。
現在のところ、 Web Services API では PUT および PATCH はサポートしていません。代わりに、 POST を使用してこれらの動詞の代表的な機能を実行できます。 |
Accept ヘッダー
要求の本文を返す場合、 Web Services は(特に指定がないかぎり) JSON 形式でデータを返します。一部のクライアントはデフォルトで "text/html" または同様のものを要求します。この場合、 API は要求された形式でデータを提供できないことを示す HTTP コード 406 で応答します。ベストプラクティスとして 'Accept ヘッダーを "application/json`" と定義して ' レスポンス・タイプとして JSON を想定しているすべての場合に使用することをお勧めします応答の本文が返されないその他のケース( DELETE など)では、 Accept ヘッダーを指定しても意図しない結果が原因されることはありません。
応答
API に要求を送信すると、次の 2 つの重要な情報が応答として返されます。
-
HTTP ステータスコード — 要求が成功したかどうかを示します
-
オプションの応答の本文 — 通常は ' リソースまたは本文の状態を表す JSON 本文を提供し ' 障害の性質の詳細を提供します
ステータスコードと content-type ヘッダーから、応答本文の内容を判断する必要があります。HTTP ステータスコードが 200~203 および 422 の場合、 Web Services は応答で JSON 本文を返します。それ以外の HTTP ステータスコードの場合、 Web Services は一般に JSON 本文を返しません。これは、仕様で許可されていない( 204 )か、ステータスが説明を必要としないためです。次の表に、一般的な HTTP ステータスコードとその定義を示します。また、各 HTTP コードに関連付けられた情報が JSON 本文で返されるかどうかも示します。
HTTP ステータスコード | 説明 | JSON 本文 |
---|---|---|
200 OK |
処理に成功したことを示します。 |
はい。 |
201 が作成されました |
オブジェクトが作成されたことを示します。このコードは、ステータス 200 ではなく、ごくまれに使用されます。 |
はい。 |
202 受け付けました |
要求は非同期要求としての処理を承認されましたが、実際の結果を取得するには以降の要求が必要です。 |
はい。 |
203 信頼できない情報 |
200 と同様ですが、 Web Services はデータが最新であることを保証できません(この時点でキャッシュされたデータのみが利用可能な場合など)。 |
はい。 |
204 コンテンツなし |
処理は成功しましたが、応答の本文はありません。 |
いいえ |
400 不正な要求です |
要求の JSON 本文が無効です。 |
いいえ |
401 認証なし |
認証エラーが発生したことを示します。クレデンシャルが指定されていないか、ユーザ名またはパスワードが無効です。 |
いいえ |
403 禁止 |
認証に失敗したことを示します。認証されたユーザに要求したエンドポイントにアクセスする権限がありません。 |
いいえ |
404 が見つかりません |
要求されたリソースが見つからなかったことを示します。このコードは、識別子で要求された API やリソースが存在しない場合に使用されます。 |
いいえ |
422 加工不能エンティティ |
要求の形式には問題はありませんが、入力パラメータが無効であるか、ストレージシステムの状態が原因で Web Services が要求を実行できません。 |
はい。 |
424 依存関係に失敗しました |
Web Services Proxy では、要求されたストレージシステムに現在アクセスできないことを示すために使用されます。そのため、 Web Services は要求を満たすことができません。 |
いいえ |
429 リクエストが多すぎます |
要求の上限を超えたため、あとで再試行する必要があります。 |
いいえ |
サンプルスクリプト
GitHub に、 NetApp SANtricity Web サービス API の使用方法を示すサンプルスクリプトをまとめたリポジトリが用意されています。リポジトリにアクセスするには、を参照してください "ネットアップ Web Services のサンプル"。