콘텐츠로 이동

변수

GraphQL 작업 시 모든 값을 하드코딩하지 않으려면 API Explorer가 JSON 객체를 추가할 수 있는 Variables 섹션을 제공합니다. JSON 객체의 최상위 키는 달러 기호로 표시된 이름을 가진 변수로 사용할 수 있습니다($KEY_NAME). 이를 통해 동적 쿼리, 뮤테이션 및 구독을 작성하고 테스트할 때 훨씬 더 즐거운 개발 경험을 제공합니다.

query MyQuery1 ($domain: String) {
students(
filter: {
email: {
contains: $domain
}
}
) {
items {
id
firstName
email
}
}
}
{
"domain": "example.com"
}

alt text

GraphQL 서버에 요청을 제출할 때 일부 동적 입력을 추가해야 할 수 있으며, 작업 문서는 동일하게 유지됩니다. 이것이 작업의 변수입니다. 변수는 GraphQL 작업에서 선언되는 타입이 지정된 인수여야 합니다. GraphQL은 정적으로 타입이 지정되므로 올바른 변수를 전달하고 있는지 검증할 수 있습니다.

다음 두 예제는 함께 작동하여 “활성” 상태이고 이름이 “M”으로 시작하는 사용자 목록을 쿼리합니다.

query MyQuery1($name_start: String, $status: Boolean) {
students(
filter: {
firstName: {
starts_with: $name_start
},
isActive: {
equals: $status
}
}
) {
items {
id
firstName
email
}
}
}
{
"name_start": "M",
"status": true
}

alt text

변수는 단일 입력 값에 국한되지 않습니다. 주어진 워크스페이스에서 선언된 모든 유형(네이티브 또는 커스텀)의 복잡한 객체일 수 있습니다. 이를 통해 전체 필터, 정렬 등을 변수로 동적으로 전달할 수 있습니다.

query MyQuery (
$filter: StudentsFilter
$first: Int
$orderBy: StudentsOrderBy
) {
students(
filter: $filter
first: $first
orderBy: $orderBy
) {
count
items {
id
firstName
lastName
age
}
}
}
{
"filter": {
"email": { "contains": "example" },
"firstName": { "starts_with": "M" }
},
"orderBy": { "lastName": "ASC"},
"first": 2
}

alt text