Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

첫 API 요청 만들기

API 요청에는 Foundry 호스트와 유효한 인증 토큰이 필요합니다. 로그인한 Foundry 화면의 주소에서 https:// 뒤의 호스트 이름을 확인합니다. 모든 요청은 해당 플랫폼 인스턴스의 HTTPS 주소를 사용합니다.

개발용 토큰 또는 운영 OAuth 클라이언트는 인증 절차로 준비합니다. 아래 예시는 company 온톨로지에 employee 객체 유형과 rename-employee 액션이 있다고 가정합니다. ID와 이름은 예시 값이며 실제 스키마에 맞게 사용해야 합니다. 조회 예시는 데이터를 읽고, 액션 예시는 실제 객체를 변경하는 요청입니다.

cURL

FOUNDRY_HOST에는 스킴을 제외한 호스트 이름을, FOUNDRY_TOKEN에는 유효한 토큰을 환경 변수로 제공합니다.

직원 객체 목록 조회:

curl -H "Content-type: application/json" \
  -H "Authorization: Bearer $FOUNDRY_TOKEN" \
  "https://$FOUNDRY_HOST/api/v2/ontologies/company/objects/employee"

직원 이름 변경 액션 적용:

curl -X POST \
  -H "Content-type: application/json" \
  -H "Authorization: Bearer $FOUNDRY_TOKEN" \
  "https://$FOUNDRY_HOST/api/v2/ontologies/company/actions/rename-employee/apply" \
  -d '{"parameters": {"id": 80060, "newName": "Anna Smith-Doe"}}'

JSON POST 요청은 -d로 본문을 전달하고 Content-type: application/json을 지정합니다. 토큰을 명령 파일에 직접 저장하지 않습니다.

Python Platform SDK

foundry_sdk를 사용할 수 있는 Python 환경이 필요합니다. 다음 예시는 BEARER_TOKEN 환경 변수에서 토큰을 읽으며, hostname에는 실제 Foundry 호스트를 넣습니다.

직원 객체 목록에서 페이지 크기 10을 요청합니다.

import foundry_sdk
import os

auth = foundry_sdk.UserTokenAuth(token=os.environ["BEARER_TOKEN"])
client = foundry_sdk.FoundryClient(auth=auth, hostname="<hostname>")

employees = client.ontologies.OntologyObject.list(
    ontology="company",
    object_type="employee",
    page_size=10,
)

print(employees)

직원 이름 변경 액션을 적용합니다.

import foundry_sdk
import os

auth = foundry_sdk.UserTokenAuth(token=os.environ["BEARER_TOKEN"])
client = foundry_sdk.FoundryClient(auth=auth, hostname="<hostname>")

response = client.ontologies.Action.apply(
    ontology="company",
    action="rename-employee",
    parameters={"id": 80060, "newName": "Anna Smith-Doe"},
)

print(response)

운영 앱에는 사용자 생성 토큰을 고정하지 않고 선택한 OAuth 인증 방식에 맞는 클라이언트를 구성합니다.

Node.js

다음 코드는 브라우저가 아니라 fetch를 제공하는 Node.js 환경에서 실행합니다. 서비스 사용자 토큰을 브라우저에 보내지 않습니다. 예시 RID는 가상의 온톨로지 식별자이며 실제 값으로 바꿉니다.

직원 객체 목록 조회:

var bearerToken = process.env.FOUNDRY_TOKEN;
var url = "https://<hostname>/api/v2/ontologies/ri.ontology.main.ontology.efc12906-e7cd-49dc-b102-ff73e52535c8/objects/employee";
fetch(url, {
  headers: {
    "Authorization": "Bearer " + bearerToken
  }
}).then(response => response.json())
  .then(data => console.log(JSON.stringify(data)));

직원 이름 변경 액션 적용:

var bearerToken = process.env.FOUNDRY_TOKEN;
var url = "https://<hostname>/api/v2/ontologies/ri.ontology.main.ontology.efc12906-e7cd-49dc-b102-ff73e52535c8/actions/rename-employee/apply";
var requestBody = {"parameters": {"id": 80060, "newName": "Anna Smith-Doe"}};
fetch(url, {
  method: "POST",
  headers: {
    "Authorization": "Bearer " + bearerToken,
    "Content-Type": "application/json"
  },
  body: JSON.stringify(requestBody)
}).then(response => response.json())
  .then(data => console.log(data));

Java

Java HTTP 클라이언트로 요청을 만들 수 있습니다. 아래 두 예시는 java.net.URI와 java.net.http의 HttpClient, HttpRequest, HttpResponse를 가져온 클래스의 예외를 처리하는 메서드 안에서 사용하는 코드입니다.

직원 객체 목록 조회:

String bearerToken = System.getenv("FOUNDRY_TOKEN");
String url = "https://<hostname>/api/v2/ontologies/ri.ontology.main.ontology.efc12906-e7cd-49dc-b102-ff73e52535c8/objects/employee";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create(url))
        .header("Authorization", "Bearer " + bearerToken)
        .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());

직원 이름 변경 액션 적용:

String bearerToken = System.getenv("FOUNDRY_TOKEN");
String url = "https://<hostname>/api/v2/ontologies/ri.ontology.main.ontology.efc12906-e7cd-49dc-b102-ff73e52535c8/actions/rename-employee/apply";
String requestBody = "{\"parameters\": {\"id\": 80060, \"newName\": \"Anna Smith-Doe\"}}";

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create(url))
        .header("Authorization", "Bearer " + bearerToken)
        .header("Content-Type", "application/json")
        .POST(HttpRequest.BodyPublishers.ofString(requestBody))
        .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());

목록 결과가 여러 페이지이면 페이지 토큰으로 이어서 조회합니다. 요청이 실패하면 HTTP 상태와 오류 응답을 함께 확인합니다.