쿼리 함수조건부 필드 조작
조건부 필드 조작
Included in the “Power Extensions” bundle
메타 디렉티브 @if와 @unless를 GraphQL 스키마에 추가하여, 필드에 대해 중첩된 디렉티브를 조건부로 실행할 수 있도록 합니다.
@if
@if는 조건의 값이 true인 경우에만 중첩된 디렉티브를 실행합니다.
이 쿼리에서는 사용자 "Leo"와 "Peter"가 "특별 사용자" 배열에 포함되어 있으므로 이름이 대문자로 변환되지만, "Martin"은 변환되지 않습니다.
query {
users {
name
@passOnwards(as: "userName")
@applyField(
name: "_inArray"
arguments: {
value: $userName
array: ["Leo", "John", "Peter"]
}
passOnwardsAs: "isSpecialUser"
)
@if(
condition: $isSpecialUser
)
@strUpperCase
}
}...결과는 다음과 같습니다:
{
"data": {
"users": [
{
"name": "LEO"
},
{
"name": "Martin"
},
{
"name": "PETER"
}
]
}
}@unless
@if와 유사하지만, 조건이 false인 경우에 중첩된 디렉티브를 실행합니다.
이 쿼리에서는 다른 사용자들은 변환되지 않고, 사용자 "Martin"의 이름만 대문자로 변환됩니다.
query {
users {
name
@passOnwards(as: "userName")
@applyField(
name: "_inArray"
arguments: {
value: $userName
array: ["Leo", "John", "Peter"]
}
passOnwardsAs: "isSpecialUser"
)
@unless(
condition: $isSpecialUser
)
@strUpperCase
}
}...결과는 다음과 같습니다:
{
"data": {
"users": [
{
"name": "Leo"
},
{
"name": "MARTIN"
},
{
"name": "Peter"
}
]
}
}