같은 액션 유형의 배치 적용(Apply Action Batch) (V1)
같은 액션 유형에 서로 다른 매개변수를 전달하여 여러 액션을 적용합니다. 한 호출에 최대 20개 액션을 적용할 수 있습니다. Object Storage V2의 객체만 수정하고 Functions를 호출하지 않는 액션에는 더 높은 한도가 적용될 수 있습니다.
Object Storage V1의 객체와 링크 변경은 최종 일관성으로 반영됩니다. Object Storage V2의 변경은 액션 완료 직후 보입니다. 배치 적용은 구성된 매개변수 기본값과 알림을 지원하지 않습니다.
| 위치 | 이름 | 자료형 | 필수 여부 | 의미 |
|---|---|---|---|---|
| 경로 | ontologyRid | string | 필수 | 액션이 속한 온톨로지 RID |
| 경로 | actionType | string | 필수 | 배치 전체에 적용할 액션 유형 API 이름 |
| 본문 | requests | list<ApplyActionRequest> | 선택 | 개별 적용 요청 목록 |
쿼리 매개변수는 없습니다. BatchApplyActionRequest JSON 본문은 필수입니다. 각 ApplyActionRequest의 선택적 parameters는 map<ParameterId, DataValue>이며, 실제 필요한 입력은 액션 유형 정의를 따릅니다. 온톨로지 RID는 List Ontologies나 Ontology Manager에서, 액션 이름은 List Action Types나 Ontology Manager에서 확인합니다. DataValue에 따라 값을 인코딩합니다.
예시는 id와 newName을 받는 액션으로 두 가상 직원의 이름을 변경합니다. 성공 응답 모델 BatchApplyActionResponse에는 추가 필드가 없으며, 개별 실행 결과 배열을 반환하지 않습니다.
HTTP 요청
POST /api/v1/ontologies/{ontologyRid}/actions/{actionType}/applyBatch
작업 식별자는 v1.applyActionBatch입니다. Authorization: Bearer <접근 토큰> 헤더로 인증합니다. OAuth 클라이언트에는 api:ontologies-read, api:ontologies-write 권한 범위가 필요합니다.
JSON 요청 예시
가상 액션에 전달하는 요청 예시입니다.
{
"requests": [
{
"parameters": {
"id": 80060,
"newName": "Anna Smith-Doe"
}
},
{
"parameters": {
"id": 80061,
"newName": "Joe Bloggs"
}
}
]
}
JSON 응답 예시
가상 온톨로지의 응답 예시입니다.
{}
오류
실패 응답은 공통 API 오류의 형식으로 처리합니다.
요청 예제
FOUNDRY_HOST에는 https://를 제외한 Foundry 호스트를, FOUNDRY_TOKEN에는 유효한 토큰을 환경 변수로 제공합니다. 아래 식별자와 입력값은 예시이므로 실제 요청 대상에 맞게 지정합니다.
cURL
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${FOUNDRY_TOKEN}" \
"https://${FOUNDRY_HOST}/api/v1/ontologies/ri.ontology.main.ontology.c61d9ab5-2919-4127-a0a1-ac64c0ce6367/actions/rename-employee/applyBatch" \
-d '{"requests":[{"parameters":{"id":80060,"newName":"Anna Smith-Doe"}},{"parameters":{"id":80061,"newName":"Joe Bloggs"}}]}'
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 = {
"requests": [
{
"parameters": {
"id": 80060,
"newName": "Anna Smith-Doe"
}
},
{
"parameters": {
"id": 80061,
"newName": "Joe Bloggs"
}
}
]
}
response = requests.post('https://{}/api/v1/ontologies/ri.ontology.main.ontology.c61d9ab5-2919-4127-a0a1-ac64c0ce6367/actions/rename-employee/applyBatch'.format(HOSTNAME), headers=headers, json=request_body)
print(response)
Java
Apache HttpClient 4.5 API와 try-with-resources를 사용하는 예제입니다. 클래스 이름에 맞는 ApplyActionBatchExample.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 ApplyActionBatchExample {
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/v1/ontologies/ri.ontology.main.ontology.c61d9ab5-2919-4127-a0a1-ac64c0ce6367/actions/rename-employee/applyBatch");
request.addHeader("content-type", "application/json");
request.addHeader("authorization", String.format("Bearer %s", TOKEN));
request.setEntity(new StringEntity("{\"requests\":[{\"parameters\":{\"id\":80060,\"newName\":\"Anna Smith-Doe\"}},{\"parameters\":{\"id\":80061,\"newName\":\"Joe Bloggs\"}}]}", 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/v1/ontologies/ri.ontology.main.ontology.c61d9ab5-2919-4127-a0a1-ac64c0ce6367/actions/rename-employee/applyBatch`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${TOKEN}`,
},
body: '{"requests":[{"parameters":{"id":80060,"newName":"Anna Smith-Doe"}},{"parameters":{"id":80061,"newName":"Joe Bloggs"}}]}'
}).then((response) => {
console.log(response)
});
PowerShell
$TOKEN = $env:FOUNDRY_TOKEN
$HOSTNAME = $env:FOUNDRY_HOST
$headers = @{
"authorization" = "Bearer $TOKEN"
}
$response = Invoke-WebRequest -Uri "https://$HOSTNAME/api/v1/ontologies/ri.ontology.main.ontology.c61d9ab5-2919-4127-a0a1-ac64c0ce6367/actions/rename-employee/applyBatch" `
-Method Post `
-Headers $headers `
-ContentType application/json `
-Body "{`"requests`":[{`"parameters`":{`"id`":80060,`"newName`":`"Anna Smith-Doe`"}},{`"parameters`":{`"id`":80061,`"newName`":`"Joe Bloggs`"}}]}"
$response.content