Query FunctionsBedingte Feldmanipulation
Bedingte Feldmanipulation
Included in the “Power Extensions” bundle
Hinzufügen der Meta-Direktiven @if und @unless zum GraphQL-Schema, um eine verschachtelte Direktive auf einem Feld bedingt auszuführen.
@if
@if führt seine verschachtelten Direktiven nur aus, wenn eine Bedingung den Wert true hat.
In dieser query werden die Namen der Nutzer "Leo" und "Peter" in Großbuchstaben umgewandelt, da sie im Array der „Special Users" enthalten sind, während "Martin" nicht umgewandelt wird:
query {
users {
name
@passOnwards(as: "userName")
@applyField(
name: "_inArray"
arguments: {
value: $userName
array: ["Leo", "John", "Peter"]
}
passOnwardsAs: "isSpecialUser"
)
@if(
condition: $isSpecialUser
)
@strUpperCase
}
}...mit folgendem Ergebnis:
{
"data": {
"users": [
{
"name": "LEO"
},
{
"name": "Martin"
},
{
"name": "PETER"
}
]
}
}@unless
Ähnlich wie @if, führt die verschachtelten Direktiven jedoch aus, wenn die Bedingung false ist.
In dieser query wird der Name des Nutzers "Martin" in Großbuchstaben umgewandelt, während die anderen nicht umgewandelt werden:
query {
users {
name
@passOnwards(as: "userName")
@applyField(
name: "_inArray"
arguments: {
value: $userName
array: ["Leo", "John", "Peter"]
}
passOnwardsAs: "isSpecialUser"
)
@unless(
condition: $isSpecialUser
)
@strUpperCase
}
}...mit folgendem Ergebnis:
{
"data": {
"users": [
{
"name": "Leo"
},
{
"name": "MARTIN"
},
{
"name": "Peter"
}
]
}
}