ONTAP Select에 대한 API 트랜잭션 요청 및 응답
모든 배포 API 호출은 클라이언트에 대한 관련 응답을 생성하는 배포 가상 시스템에 대한 HTTP 요청으로 수행됩니다. 이 요청/응답 쌍은 API 트랜잭션으로 간주됩니다. Deploy API를 사용하기 전에 요청을 제어하는 데 사용할 수 있는 입력 변수와 응답 출력의 내용을 숙지해야 합니다.
API 요청을 제어하는 입력 변수입니다
HTTP 요청에 설정된 매개 변수를 통해 API 호출 처리 방법을 제어할 수 있습니다.
요청 헤더
HTTP 요청에 다음과 같은 여러 헤더를 포함해야 합니다.
-
content-type 요청 본문에 JSON이 포함되어 있으면 이 헤더를 application/json으로 설정해야 합니다.
-
수락 응답 본문에 JSON이 포함될 경우 이 헤더를 application/json으로 설정해야 합니다.
-
권한 부여 기본 인증은 base64 문자열로 인코딩된 사용자 이름과 암호로 설정되어야 합니다.
요청 본문
요청 본문의 내용은 특정 호출에 따라 달라집니다. HTTP 요청 본문은 다음 중 하나로 구성됩니다.
-
입력 변수가 있는 JSON 개체(예: 새 클러스터의 이름)
-
비어 있습니다
개체를 필터링합니다
Get을 사용하는 API 호출을 실행할 때 모든 특성에 따라 반환된 객체를 제한하거나 필터링할 수 있습니다. 예를 들어, 다음과 같이 정확하게 일치하는 값을 지정할 수 있습니다.
'<field>=<query value>'
정확한 일치 항목 외에 값 범위에 있는 개체 집합을 반환할 수 있는 다른 연산자도 있습니다. ONTAP Select는 아래 표시된 필터링 연산자를 지원합니다.
운영자 | 설명 |
---|---|
= |
같음 |
를 누릅니다 |
보다 작음 |
를 누릅니다 |
보다 큼 |
= |
보다 작거나 같음 |
>= |
보다 크거나 같음 |
또는 |
|
! |
같지 않음 |
* |
greedy 와일드카드 |
또한 쿼리의 일부로 Null 키워드 또는 해당 부정(!null)을 사용하여 특정 필드가 설정되었는지 여부를 기준으로 개체 집합을 반환할 수도 있습니다.
개체 필드 선택
기본적으로 Get 을 사용하여 API 호출을 실행하면 개체나 개체를 고유하게 식별하는 특성만 반환됩니다. 이 최소 필드 집합은 각 개체의 키 역할을 하며 개체 유형에 따라 달라집니다. 다음과 같은 방법으로 필드 쿼리 매개 변수를 사용하여 추가 개체 속성을 선택할 수 있습니다.
-
저렴한 필드는 로컬 서버 메모리에 유지되거나 액세스를 위해 처리가 거의 필요하지 않은 개체 필드를 검색하려면 필드= * 를 지정합니다.
-
고가의 필드는 액세스를 위해 추가 서버 처리가 필요한 필드를 포함하여 모든 객체 필드를 검색하기 위해 필드 = ** 를 지정합니다.
-
사용자 정의 필드 선택 필드=필드 이름 을 사용하여 원하는 필드를 정확하게 지정합니다. 여러 필드를 요청할 때는 공백 없이 쉼표를 사용하여 값을 구분해야 합니다.
가장 좋은 방법은 항상 원하는 특정 필드를 식별하는 것입니다. 필요한 경우 저렴한 필드나 값비싼 필드 집합만 검색해야 합니다. 저렴하고 값비싼 분류는 내부 성능 분석을 기반으로 NetApp에서 결정합니다. 지정된 필드의 분류는 언제든지 변경할 수 있습니다. |
출력 집합에서 개체를 정렬합니다
리소스 컬렉션의 레코드는 개체에서 정의한 기본 순서로 반환됩니다. ORDER_BY 쿼리 파라미터와 필드 이름, 정렬 방향을 함께 사용하여 순서를 변경할 수 있습니다: 'ORDER_BY=<필드 이름>ASC|desc'
예를 들어, 유형 필드를 내림차순으로 정렬한 다음 ID를 오름차순으로 정렬할 수 있습니다. "order_by=type desc, id asc
여러 매개 변수를 포함할 때는 필드를 쉼표로 구분해야 합니다.
페이지 매김
Get 을 사용하여 API 호출을 실행하면 동일한 형식의 개체 컬렉션에 액세스할 때 일치하는 모든 개체가 기본적으로 반환됩니다. 필요한 경우 요청과 함께 max_records 쿼리 매개 변수를 사용하여 반환되는 레코드 수를 제한할 수 있습니다. 예를 들어, max_records=20'입니다
필요한 경우 이 매개 변수를 다른 쿼리 매개 변수와 결합하여 결과 집합의 범위를 좁힐 수 있습니다. 예를 들어, 'time⇒2019-04-04T15:41:29.140265Z & max_records=10'과 같이 지정된 시간 이후에 생성된 최대 10개의 시스템 이벤트를 반환합니다
이벤트(또는 모든 개체 유형)를 통해 페이지를 넘도록 여러 요청을 실행할 수 있습니다. 이후의 각 API 호출은 마지막 결과 집합의 최신 이벤트를 기반으로 새 시간 값을 사용해야 합니다.
API 응답을 해석합니다
각 API 요청은 클라이언트에 대한 응답을 다시 생성합니다. 응답을 검토하여 성공 여부를 확인하고 필요에 따라 추가 데이터를 검색할 수 있습니다.
HTTP 상태 코드입니다
Deploy REST API에 사용되는 HTTP 상태 코드는 아래와 같다.
코드 | 의미 | 설명 |
---|---|---|
200 |
좋습니다 |
새 개체를 만들지 않는 호출에 대한 성공 여부를 나타냅니다. |
201 |
작성됨 |
객체가 성공적으로 생성되었습니다. 위치 응답 헤더에는 객체의 고유 식별자가 포함됩니다. |
202 |
수락됨 |
요청을 수행하기 위해 오래 실행되는 백그라운드 작업이 시작되었지만 작업이 아직 완료되지 않았습니다. |
400 |
잘못된 요청입니다 |
요청 입력이 인식되지 않거나 부적절합니다. |
403 |
금지됨 |
인증 오류로 인해 액세스가 거부되었습니다. |
404 |
찾을 수 없습니다 |
요청에서 참조되는 리소스가 없습니다. |
405 |
메서드가 허용되지 않습니다 |
요청의 HTTP 동사는 리소스에 대해 지원되지 않습니다. |
409 |
충돌 |
개체가 이미 있으므로 개체를 만들지 못했습니다. |
500입니다 |
내부 오류입니다 |
서버에서 일반적인 내부 오류가 발생했습니다. |
501)를 참조하십시오 |
구현되지 않았습니다 |
URI를 알고 있지만 요청을 수행할 수 없습니다. |
응답 헤더
배포 서버에서 생성된 HTTP 응답에는 다음과 같은 여러 헤더가 포함됩니다.
-
Request-id 성공한 모든 API 요청에는 고유한 요청 식별자가 할당됩니다.
-
위치 개체를 만들 때 위치 머리글에는 고유한 개체 식별자를 포함하여 새 개체에 대한 전체 URL이 포함됩니다.
응답 바디
API 요청과 관련된 응답 내용은 객체, 처리 유형 및 요청의 성공 또는 실패에 따라 달라집니다. 응답 본문은 JSON으로 렌더링됩니다.
-
단일 개체 단일 개체는 요청에 따라 필드 집합과 함께 반환할 수 있습니다. 예를 들어, 가져오기를 사용하여 고유 식별자를 사용하여 클러스터의 선택된 속성을 검색할 수 있습니다.
-
여러 개체 리소스 컬렉션의 여러 개체를 반환할 수 있습니다. 모든 경우에 사용되는 형식이 일관되게 있으며, 개체 인스턴스의 배열을 포함하는 레코드 및 레코드 수를 나타내는 num_records가 있습니다. 예를 들어, 특정 클러스터에 정의된 모든 노드를 검색할 수 있습니다.
-
작업 개체 API 호출이 비동기적으로 처리되는 경우 백그라운드 작업을 고정한 작업 개체가 반환됩니다. 예를 들어, 클러스터를 배포하는 데 사용되는 POST 요청은 비동기적으로 처리되고 작업 개체를 반환합니다.
-
오류 개체 오류가 발생하면 오류 개체는 항상 반환됩니다. 예를 들어, 이름이 이미 존재하는 클러스터를 생성하려고 하면 오류가 발생합니다.
-
비어 있는 경우 데이터가 반환되지 않고 응답 본문이 비어 있는 경우가 있습니다. 예를 들어, 삭제 기능을 사용하여 기존 호스트를 삭제한 후 응답 본문이 비어 있습니다.