다음을 통해 공유


CRUD(만들기, 읽기, 업데이트, 삭제)

IIS 관리 API는 시스템의 리소스에 대한 직접 액세스를 제공합니다. 이러한 리소스의 대부분은 만들기, 읽기, 업데이트 및 삭제 작업을 허용합니다. REST API는 CRUD 작업을 HTTP 메서드에 매핑합니다. 다음 표에서는 어떤 HTTP 메서드가 어떤 작업에 매핑되는지 지정합니다.

CRUD 작업 HTTP 메서드
창조하다 올리기
읽다 가져오기
업데이트 PATCH/PUT
삭제하다 삭제하다

만들기(POST)

리소스는 API에 HTTP POST 요청을 전송하여 생성됩니다. 리소스 유형은 요청의 URL에 의해 결정됩니다. 요청 본문에는 만들 리소스를 설명하는 JSON 개체가 포함되어야 합니다. 요청 본문의 개체는 리소스가 생성될 때의 초기 상태를 결정합니다. 일부 리소스는 만들 때 특정 속성을 제공해야 하고, 다른 리소스는 빈 JSON 개체를 사용하여 만들 수 있습니다.

이름 속성을 설정하는 동안 리소스를 만듭니다. 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={파일의 실제 경로}

파일 엔드포인트는 지정된 실제 경로에 대해 하나의 파일만 존재할 수 있으므로 이 동작을 제공하므로 쿼리 문자열 매개 변수를 고유하게 식별하는 .

업데이트(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입니다.