Query Functionsการจัดการฟิลด์แบบมีเงื่อนไข
การจัดการฟิลด์แบบมีเงื่อนไข
Included in the “Power Extensions” bundle
เพิ่ม meta directives @if และ @unless เข้าไปใน GraphQL schema เพื่อให้สามารถรัน nested directive บนฟิลด์ได้แบบมีเงื่อนไข
@if
@if จะรัน nested directives ก็ต่อเมื่อเงื่อนไขมีค่าเป็น true
ใน query นี้ ผู้ใช้ "Leo" และ "Peter" จะได้รับการแปลงชื่อเป็นตัวพิมพ์ใหญ่ เนื่องจากอยู่ใน array "special user" ในขณะที่ "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 แต่จะรัน nested directives เมื่อเงื่อนไขมีค่าเป็น false
ใน query นี้ ผู้ใช้ "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