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/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 來刪除。 這是包含資源