共用方式為


CRUD (建立、讀取、更新、刪除)

IIS 系統管理 API 可讓您直接存取系統上的資源。 其中許多資源都允許建立、讀取、更新和刪除作業。 REST API 會將 CRUD 作業對應至 HTTP 方法。 下表指定哪個 HTTP 方法對應至哪個作業。

CRUD 作業 HTTP 方法
創造 發佈
獲取
更新 PATCH / PUT
刪除 刪除

建立 (POST)

資源是藉由將 HTTP POST 要求傳送至 API 來建立。 資源的類型是由要求的 URL 所決定。 要求的主體應該包含 JSON 物件,描述要建立的資源。 要求本文中的 對象會決定資源建立時的初始狀態。 某些資源需要在建立時提供特定屬性,其他資源則可使用空的 JSON 物件來建立。

設定 name 屬性時建立資源。 POST

{
    "name": "Example Resource Name"
}

建立屬於另一個資源的資源

有時候會建立要屬於另一個資源的資源。 例如,如果 應用程式 必須屬於網站,且有人想要 建立新的 應用程式,則他們會在建立應用程式期間指定該關聯性,如下所示。

建立網站的應用程式。 POST

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

讀取 (GET)

執行 HTTP GET 要求來擷取資源。 有兩個主要方法可以擷取資源。 第一個方法牽涉到要求資源清單,第二個方法是要求單一資源時。 對單一資源的要求會以要求 URL 中的資源 標識碼 存在來標示。 有時候,也可以透過 URL 中的查詢字串剖析器來指定單一資源。 此行為取決於個別 API 端點。

擷取多個資源

讀取資源清單是藉由要求資源端點來完成,而不需指定個別資源 識別元。有時候資源需要查詢字串參數,否則它們無法產生有效的清單。 例如,IIS 應用程式位於 /api/webserver/webapps 端點,但要求僅要求該端點不會產生任何資訊。 這是因為必須指定網站,才能告訴 API 應該顯示哪些應用程式。 因此,取用者會要求 /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 中提供資源 標識碼,以個別方式擷取資源。 某些 API 端點也允許藉由提供唯一識別查詢字串參數來指定個別資源。 例如,您可以藉由在 URL 中提供檔案的 識別碼,或提供檔案 physical_path 來擷取檔案。

檔案資源可讓多個方法擷取個別檔案:

  • /api/files/{id}
  • /api/files?physical_path={file 的實體路徑}

檔案端點會提供此行為,因為任何指定的實體路徑只能有一個檔案存在,因此它是唯一識別 查詢字串參數的

更新 (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)

資源會藉由將 HTTP DELETE 要求傳送至資源所在的 URL 來刪除。 這是包含資源 標識碼的URL。