쿼리 함수
쿼리 함수조건부 필드 조작

조건부 필드 조작

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"
      }
    ]
  }
}