Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

온톨로지 질의 실행(Execute Query) (V2)

지정한 입력으로 읽기 전용 온톨로지 질의를 실행합니다. 질의는 온톨로지나 외부 시스템을 변경하지 않습니다. 선택적 매개변수는 생략할 수 있습니다. 입력의 필수 여부와 출력 형식은 질의 유형 조회로 확인합니다.

기본적으로 가장 최근에 게시한 버전을 실행하며 사전 릴리스도 선택될 수 있습니다. version은 실행할 시맨틱 버전 범위입니다. branch만 지정하면 해당 브랜치의 최신 버전을 사용하고, 버전도 지정하면 해당 브랜치에 그 버전이 있어야 합니다.

HTTP 요청

POST /api/v2/ontologies/{ontology}/queries/{queryApiName}/execute

작업 식별자는 v2.executeQueryV2입니다. OAuth2로 호출하는 타사 애플리케이션에는 api:ontologies-read 권한 범위가 필요합니다. 각 요청에 Authorization: Bearer <접근 토큰>을 전달합니다.

경로 매개변수

이름자료형필수 여부의미와 조건예시 값
ontologystring필수온톨로지의 API 이름 또는 RID입니다. List Ontologies 또는 Ontology Manager에서 확인합니다.palantir
queryApiNamestring필수실행할 질의의 API 이름입니다.getEmployeesInCity

쿼리 매개변수

이름자료형필수 여부의미와 조건예시 값
versionstring선택실행할 질의의 시맨틱 버전 범위입니다. 범위를 충족하는 버전을 선택합니다. 생략하면 가장 최근에 게시한 버전을 사용합니다.
branchstring선택질의를 실행할 Foundry 브랜치입니다. 생략하면 기본 브랜치를 사용합니다. 브랜치는 실험적 기능이며 모든 작업 경로를 지원하지 않습니다. version 없이 branch만 지정하면 해당 브랜치에서 사전 릴리스를 포함한 최신 버전을 사용합니다. version도 지정하면 그 버전이 해당 브랜치에 있어야 합니다.ri.branch..branch.d827184f-ee0e-4351-8b70-efbe51e07252
sdkPackageRidstring선택생성된 SDK 패키지의 RID입니다.
sdkVersionstring선택생성된 SDK의 버전입니다.
transactionIdstring선택읽을 온톨로지 트랜잭션 ID입니다. 트랜잭션은 실험적 기능이며 모든 작업 경로를 지원하지 않을 수 있습니다.
scenarioRidstring선택질의를 실행할 온톨로지 시나리오의 RID입니다.ri.actions..scenario.a1b2c3d4-e5f6-7890-abcd-ef1234567890

요청 본문

본문 형식은 ExecuteQueryRequest이며 필수입니다.

이름자료형필수 여부의미와 조건예시 값
parametersmap<ParameterId, DataValue>선택

parameters의 구조

맵의 키는 ParameterId(string), 값은 DataValue(any)입니다.

키: 액션이나 쿼리 입력에 사용하는 매개변수의 고유 ID입니다. 매개변수는 Ontology Manager에서 확인하고 관리할 수 있습니다.

중첩 가능한 데이터 값입니다. 자료형별 JSON 표현은 액션 데이터 값을 따릅니다.

도시 이름을 입력하는 요청 본문 예시입니다.

{
  "parameters": {
    "city": "New York"
  }
}

응답

응답 형식은 ExecuteQueryResponse입니다.

성공 응답입니다.

이름자료형필수 여부의미와 조건예시 값
valueany필수중첩 가능한 데이터 값입니다. 자료형별 JSON 표현은 액션 데이터 값을 따릅니다.

직원 객체의 기본 키 목록을 반환하는 질의의 응답 예시입니다.

{
  "value": [
    "EMP546",
    "EMP609",
    "EMP989"
  ]
}

개별 오류

오류 응답 처리는 공통 API 오류 계약을 따릅니다.

요청 예제

FOUNDRY_HOST에는 https://를 제외한 Foundry 호스트를, FOUNDRY_TOKEN에는 유효한 토큰을 환경 변수로 제공합니다. 예시 식별자와 매개변수 값은 실제 작업 대상에 맞게 바꿉니다.

API 이름, 브랜치 RID와 입력값은 실제 대상에 맞춰 바꿉니다. 기본 브랜치를 사용할 때는 branch를 생략합니다. 시나리오를 지정할 때는 조회할 데이터 문맥의 실제 scenarioRid를 사용합니다.

cURL

curl -X POST \
	-H "Content-type: application/json" \
	-H "Authorization: Bearer ${FOUNDRY_TOKEN}" \
	"https://${FOUNDRY_HOST}/api/v2/ontologies/palantir/queries/getEmployeesInCity/execute?branch=ri.branch..branch.d827184f-ee0e-4351-8b70-efbe51e07252&scenarioRid=ri.actions..scenario.a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
	-d '{"parameters":{"city":"New York"}}'

Python

Requests 라이브러리가 설치된 Python 환경에서 사용합니다.

import os
import requests

HOSTNAME = os.environ["FOUNDRY_HOST"]
TOKEN = os.environ["FOUNDRY_TOKEN"]
headers = {
    "content-type": "application/json",
    "authorization": "Bearer {}".format(TOKEN)
}
request_body = {
    "parameters": {
        "city": "New York"
    }
}

response = requests.post('https://{}/api/v2/ontologies/palantir/queries/getEmployeesInCity/execute?branch=ri.branch..branch.d827184f-ee0e-4351-8b70-efbe51e07252&scenarioRid=ri.actions..scenario.a1b2c3d4-e5f6-7890-abcd-ef1234567890'.format(HOSTNAME), headers=headers, json=request_body)
print(response)

Java

Apache HttpClient 4.5 API와 try-with-resources를 사용합니다. 클래스 이름에 맞는 ExecuteQueryV2Example.java 파일에서 사용합니다.

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;

public class ExecuteQueryV2Example {
    public static void main(String[] args) throws Exception {
        String HOSTNAME = System.getenv("FOUNDRY_HOST");
        String TOKEN = System.getenv("FOUNDRY_TOKEN");

        try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
            HttpPost request = new HttpPost("https://" + HOSTNAME + "/api/v2/ontologies/palantir/queries/getEmployeesInCity/execute?branch=ri.branch..branch.d827184f-ee0e-4351-8b70-efbe51e07252&scenarioRid=ri.actions..scenario.a1b2c3d4-e5f6-7890-abcd-ef1234567890");
            request.addHeader("content-type", "application/json");
            request.addHeader("authorization", String.format("Bearer %s", TOKEN));
            request.setEntity(new StringEntity("{\"parameters\":{\"city\":\"New York\"}}", ContentType.APPLICATION_JSON));
            try (CloseableHttpResponse response = httpClient.execute(request)) {
                System.out.println(response);
            }
        }
    }
}

JavaScript

fetch를 제공하는 Node.js 환경에서 사용합니다. 서비스 사용자 토큰을 브라우저로 전달하지 않습니다.

const HOSTNAME = process.env.FOUNDRY_HOST;
const TOKEN = process.env.FOUNDRY_TOKEN;

fetch(`https://${HOSTNAME}/api/v2/ontologies/palantir/queries/getEmployeesInCity/execute?branch=ri.branch..branch.d827184f-ee0e-4351-8b70-efbe51e07252&scenarioRid=ri.actions..scenario.a1b2c3d4-e5f6-7890-abcd-ef1234567890`, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${TOKEN}`,
    },
    body: '{"parameters":{"city":"New York"}}'
}).then((response) => {
    console.log(response)
});

PowerShell

$ErrorActionPreference = 'Stop'
$TOKEN = $env:FOUNDRY_TOKEN
$HOSTNAME = $env:FOUNDRY_HOST

$headers = @{
    "authorization" = "Bearer $TOKEN"
}

$response = Invoke-WebRequest -Uri "https://$HOSTNAME/api/v2/ontologies/palantir/queries/getEmployeesInCity/execute?branch=ri.branch..branch.d827184f-ee0e-4351-8b70-efbe51e07252&scenarioRid=ri.actions..scenario.a1b2c3d4-e5f6-7890-abcd-ef1234567890" `
	-Method Post `
	-Headers $headers `
	-ContentType application/json `
	-Body "{`"parameters`":{`"city`":`"New York`"}}"

$response.content