콘텐츠로 이동

Mutation API 레퍼런스

엣지 뮤테이션 API. 개념적 배경은 뮤테이션을 참고하세요.

소스 노드와 타겟 노드 사이의 엣지를 변경합니다.

POST /graph/v3/databases/{database}/tables/{table}/edges
위치파라미터필수 여부설명
HeaderAuthorization선택인증 키 (향후 사용을 위해 예약됨)
Pathdatabase필수타겟 데이터베이스 이름
Pathtable필수타겟 테이블 이름
Querylock선택 (기본값: true)뮤테이션 중 락 획득 여부
Bodymutations필수뮤테이션 항목 목록

EdgeBulkMutationRequest - 뮤테이션 항목을 포함한 페이로드

EdgeMutationResponse - 뮤테이션 결과를 포함한 페이로드

파라미터
AuthorizationYOUR_API_KEY
databaseyour_database
tableyour_table
locktrue
Terminal window
# POST /graph/v3/databases/your_database/tables/your_table/edges
curl -X POST \
"http://ab.example.com/graph/v3/databases/your_database/tables/your_table/edges?lock=true" \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mutations": [
{
"type": "INSERT",
"edge": {
"version": 1,
"source": "source1",
"target": "target1",
"properties": {
"weight": 0.8,
"type": "FOLLOWS"
}
}
}
]
}'
{
"results": [
{
"source": "source1",
"target": "target1",
"status": "CREATED",
"count": 1
}
]
}

엣지를 동기적으로 변경합니다. 이 엔드포인트는 뮤테이션이 완료될 때까지 기다린 후 응답을 반환합니다.

POST /graph/v3/databases/{database}/tables/{table}/edges/sync
위치파라미터필수 여부설명
HeaderAuthorization선택인증 키 (향후 사용을 위해 예약됨)
Pathdatabase필수타겟 데이터베이스 이름
Pathtable필수타겟 테이블 이름
Querylock선택 (기본값: true)뮤테이션 중 락 획득 여부
Bodymutations필수뮤테이션 항목 목록

EdgeBulkMutationRequest - 뮤테이션 항목을 포함한 페이로드

EdgeMutationResponse - 뮤테이션 결과를 포함한 페이로드

파라미터
AuthorizationYOUR_API_KEY
databaseyour_database
tableyour_table
locktrue
Terminal window
# POST /graph/v3/databases/your_database/tables/your_table/edges/sync
curl -X POST \
"http://ab.example.com/graph/v3/databases/your_database/tables/your_table/edges/sync?lock=true" \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mutations": [
{
"type": "UPDATE",
"edge": {
"version": 2,
"source": "source1",
"target": "target1",
"properties": {
"weight": 0.9,
"type": "FOLLOWS"
}
}
}
]
}'
{
"results": [
{
"source": "source1",
"target": "target1",
"status": "UPDATED",
"count": 1
}
]
}

엣지 ID로 식별되는 멀티 엣지를 변경합니다.

POST /graph/v3/databases/{database}/tables/{table}/multi-edges
위치파라미터필수 여부설명
HeaderAuthorization선택인증 키 (향후 사용을 위해 예약됨)
Pathdatabase필수타겟 데이터베이스 이름
Pathtable필수타겟 테이블 이름
Querylock선택 (기본값: true)뮤테이션 중 락 획득 여부
Bodymutations필수뮤테이션 항목 목록

MultiEdgeBulkMutationRequest - 뮤테이션 항목을 포함한 페이로드

MultiEdgeMutationResponse - 뮤테이션 결과를 포함한 페이로드

파라미터
AuthorizationYOUR_API_KEY
databaseyour_database
tableyour_table
locktrue
Terminal window
# POST /graph/v3/databases/your_database/tables/your_table/multi-edges
curl -X POST \
"http://ab.example.com/graph/v3/databases/your_database/tables/your_table/multi-edges?lock=true" \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mutations": [
{
"type": "INSERT",
"edge": {
"version": 1,
"id": "edge1",
"source": "source1",
"target": "target1",
"properties": {
"weight": 0.8,
"type": "FOLLOWS"
}
}
}
]
}'
{
"results": [
{
"id": "edge1",
"status": "CREATED",
"count": 1
}
]
}

멀티 엣지를 동기적으로 변경합니다. 이 엔드포인트는 뮤테이션이 완료될 때까지 기다린 후 응답을 반환합니다.

POST /graph/v3/databases/{database}/tables/{table}/multi-edges/sync
위치파라미터필수 여부설명
HeaderAuthorization선택인증 키 (향후 사용을 위해 예약됨)
Pathdatabase필수타겟 데이터베이스 이름
Pathtable필수타겟 테이블 이름
Querylock선택 (기본값: true)뮤테이션 중 락 획득 여부
Bodymutations필수뮤테이션 항목 목록

MultiEdgeBulkMutationRequest - 뮤테이션 항목을 포함한 페이로드

MultiEdgeMutationResponse - 뮤테이션 결과를 포함한 페이로드

파라미터
AuthorizationYOUR_API_KEY
databaseyour_database
tableyour_table
locktrue
Terminal window
# POST /graph/v3/databases/your_database/tables/your_table/multi-edges/sync
curl -X POST \
"http://ab.example.com/graph/v3/databases/your_database/tables/your_table/multi-edges/sync?lock=true" \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mutations": [
{
"type": "DELETE",
"edge": {
"version": 3,
"id": "edge1",
"source": "source1",
"target": "target1",
"properties": {}
}
}
]
}'
{
"results": [
{
"id": "edge1",
"status": "DELETED",
"count": 1
}
]
}

뮤테이션 항목의 type 필드는 수행할 작업을 지정합니다:

타입설명
INSERT새 엣지를 생성하거나 기존 엣지를 새 버전으로 업데이트합니다
UPDATE기존 엣지의 프로퍼티를 업데이트합니다
DELETE엣지를 삭제합니다 (삭제됨으로 표시)

lock 파라미터는 뮤테이션 중 락 획득 여부를 제어합니다:

  • true (기본값): 동시 수정을 방지하기 위해 락을 획득합니다. 데이터 일관성을 보장하지만 지연 시간이 높아질 수 있습니다.
  • false: 락을 건너뜁니다. 더 빠르지만 여러 뮤테이션이 동시에 같은 엣지를 대상으로 할 경우 경쟁 조건이 발생할 수 있습니다.

참고: 데이터 일관성을 보장하기 위해 프로덕션 환경에서는 lock=true를 사용하는 것이 권장됩니다.

엣지 뮤테이션 요청 페이로드.

data class EdgeBulkMutationRequest(
val mutations: List<MutationItem>, // 뮤테이션 항목 목록
) {
data class MutationItem(
val type: EventType, // 이벤트 타입 (INSERT, UPDATE, DELETE)
val edge: Edge, // 엣지 데이터
)
}

멀티 엣지 뮤테이션 요청 페이로드.

data class MultiEdgeBulkMutationRequest(
val mutations: List<MutationItem>, // 뮤테이션 항목 목록
) {
data class MutationItem(
val type: EventType, // 이벤트 타입 (INSERT, UPDATE, DELETE)
val edge: MultiEdge, // 멀티 엣지 데이터
)
}

엣지 뮤테이션 응답 페이로드.

data class EdgeMutationResponse(
val results: List<Item>, // 뮤테이션 결과 목록
) {
data class Item(
val source: Any, // 소스 노드 ID
val target: Any, // 타겟 노드 ID
val status: String, // 뮤테이션 상태 (예: CREATED, UPDATED, DELETED)
val count: Int, // 영향받은 엣지 수
)
}

멀티 엣지 뮤테이션 응답 페이로드.

data class MultiEdgeMutationResponse(
val results: List<Item>, // 뮤테이션 결과 목록
) {
data class Item(
val id: Any, // 엣지 ID
val status: String, // 뮤테이션 상태 (예: CREATED, UPDATED, DELETED)
val count: Int, // 영향받은 엣지 수
)
}

뮤테이션을 위한 개별 엣지 정보.

data class Edge(
val version: Long, // 엣지 버전
val source: Any, // 소스 노드 ID
val target: Any, // 타겟 노드 ID
val properties: Map<String, Any?>, // 엣지 프로퍼티
)

뮤테이션을 위한 개별 멀티 엣지 정보.

data class MultiEdge(
val version: Long, // 엣지 버전
val id: Any, // 엣지 ID
val source: Any? = null, // 소스 노드 ID (선택)
val target: Any? = null, // 타겟 노드 ID (선택)
val properties: Map<String, Any?>, // 엣지 프로퍼티
)