CRUD (作成、読み取り、更新、削除)

IIS 管理 API を使用すると、システム上のリソースに直接アクセスできます。 これらのリソースの多くは、作成、読み取り、更新、削除の操作を可能にします。 REST API は、CRUD 操作を HTTP メソッドにマップします。 次の表では、どの HTTP メソッドがどの操作にマップするかを指定します。

CRUD の操作 HTTP メソッド
作成 POST
Read GET
更新 PATCH/PUT
削除 DELETE

作成 (POST)

リソースは、API に HTTP POST 要求を送信することによって作成されます。 リソースの種類は、要求の URL によって決まります。 要求の本文には、作成するリソースを記述する JSON オブジェクトが含まれている必要があります。 要求本文のオブジェクトは、リソースの作成時の初期状態を決定します。 一部のリソースでは、作成時に特定のプロパティを指定する必要があり、他のリソースは空の JSON オブジェクトを使用して作成できます。

name プロパティの設定中にリソースを作成する。 POST

{
    "name": "Example Resource Name"
}

別のリソースに属するリソースの作成

別のリソースに属することを意図したリソースが作成される場合があります。 たとえば、 アプリケーション が Web サイトに属している必要があり、新しい アプリケーション を作成する必要がある場合は、次に示すように、アプリケーションの作成時にそのリレーションシップを指定します。

Web サイト用のアプリケーションの作成。 POST

{
    "path": "/MyApp",
    "physical_path": "c:/sites/mysite/myapp",
    "website": {
        "id": {website_id}
    }
}

読み取り (GET)

リソースは、HTTP GET 要求を実行して取得されます。 リソースを取得する主な方法は 2 つあります。 1 つ目のメソッドではリソースの一覧を要求します。2 つ目の方法は、単一のリソースが要求されたときです。 1 つのリソースへの要求は、要求の URL にリソース ID が存在することでマークされます。 URL 内のクエリ文字列のパラメーターを使用して単一のリソースを指定することもできます。 この動作は、個々の API エンドポイントによって異なります。

複数のリソースの取得

リソースのリストの読み取りは、個々のリソース ID を指定せずにリソース エンドポイントを要求することによって行われます。リソースにクエリ文字列パラメーターが必要な場合や、有効なリストを生成できない場合があります。 たとえば、IIS アプリケーションは /api/webserver/webapps エンドポイントに存在しますが、そのエンドポイントのみを要求しても情報は生成されません。 これは、表示するアプリケーションを API に伝えるために Web サイトを指定する必要があるためです。 そのため、コンシューマーは /api/webserver/webapps?website.id={website_id} を 要求してアプリケーションの一覧を表示します。

リソースの一覧を取得しています。 GET/api/websites

{
    "websites": [
        {
            "name": "Default Web Site",
            "id": "{id}",
            "status": "started",
            "_links": {
                "self": {
                    "href": "/api/webserver/websites/{id}"
                }
            }
        },
        {
            "name": "My Site",
            "id": "{id_1}",
            "status": "started",
            "_links": {
                "self": {
                    "href": "/api/webserver/websites/{id_1}"
                }
            }
        }
        {
            "name": "docs",
            "id": "{id_2}",
            "status": "started",
            "_links": {
                "self": {
                    "href": "/api/webserver/websites/{id_2}"
                }
            }
        }
    ]
}

個々のリソースの取得

リソースは、リソース エンドポイントの URL にリソースの ID を 指定することで、個別に取得されます。 一部の API エンドポイントでは、クエリ文字列パラメーターを一意に識別することで、個々のリソースを指定することもできます。 たとえば、URL にファイルの ID を 指定するか、ファイルの physical_path を指定することで、ファイルを取得できます。

ファイル リソースを使用すると、複数のメソッドで個々のファイルを取得できます。

  • /api/files/{id}
  • /api/files?physical_path={ファイルの物理パス}

ファイル エンドポイントは、特定の物理パスに対して 1 つのファイルしか存在できないため、一 意に識別 されるクエリ文字列パラメーターであるため、この動作を提供します。

更新 (PATCH/PUT)

更新は、リソースが配置されている URL に HTTP PATCH 要求を発行することによって実行されます。 PATCH 要求が実行されると、要求本文のプロパティが読み取られ、リソースに同じ名前のプロパティがある場合は、リソースのプロパティが新しい値に設定されます。

PATCH より前のリソースの例

{
    "name": "My Site",
    "id": "12345",
    "physical_path": "c:\\sites\\mysite"
    "_links": {
        "self": {
            "href": "/api/webserver/websites/{12345}"
        }
    }
}

PATCH 要求の実行

リソースの名前を更新するパッチ要求。 PATCH/api/webserver/websites/12345

{
    "name": "My Site 2"
}

PATCH 後のリソース

{
    "name": "My Site 2",
    "id": "12345",
    "physical_path": "c:\\sites\\mysite"
    "_links": {
        "self": {
            "href": "/api/webserver/websites/{12345}"
        }
    }
}

削除 (DELETE)

リソースは、リソースが配置されている URL に HTTP DELETE 要求を送信することによって削除されます。 これは、リソースの ID を含む URL です。