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 来删除资源。 这是包含资源