CRUD (创建、读取、更新、删除)

IIS 管理 API 提供对系统上资源的直接访问。 其中许多资源允许创建、读取、更新和删除操作。 REST API 将 CRUD 操作映射到 HTTP 方法。 下表指定了哪个 HTTP 方法映射到哪个操作。

CRUD 操作 HTTP 方法
创造 发布
获取
更新 PATCH/PUT
删除 删除

创建 (POST)

资源是通过向 API 发送 HTTP POST 请求创建的。 资源的类型由请求的 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 中存在资源 ID 标记。 有时,还可以通过 URL 中的查询字符串分析器指定单一资源。 此行为取决于单个 API 终结点。

检索多个资源

读取资源列表是通过请求资源终结点来完成的,而无需指定单个资源 ID。有时资源需要查询字符串参数,否则它们无法生成有效的列表。 例如,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 中提供资源的 ID,可以单独检索资源。 某些 API 终结点还允许通过提供唯一标识查询字符串参数来指定单个资源。 例如,可以通过在 URL 中提供文件的 ID 或提供文件的 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 来删除资源。 这是包含资源 ID 的 URL。