Query Functions条件付きフィールド操作
条件付きフィールド操作
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"
}
]
}
}Prev
Next