Logo

기능:

'oneOf' Input Object

'oneOf' Input Object

oneOf input object는 특수한 종류의 input object입니다. 입력 필드 중 정확히 하나만 입력으로 제공해야 하며, 그렇지 않으면 서버가 유효성 검사 오류를 반환합니다. 이 동작은 GraphQL의 입력에 다형성을 도입하여 더 깔끔한 스키마를 설계할 수 있게 해줍니다.

예를 들어, 애플리케이션에서 사용자를 조회할 때 사용자 ID나 이메일 주소 등 다양한 속성을 사용할 수 있습니다. 이를 구현하려면 일반적으로 각 속성마다 별도의 필드를 만들어야 합니다:

type Query {
  userByID(id: ID!): User
  userByEmail(email: String!): User
}

oneOf input object를 사용하면, 대신 UserByInput oneOf input object를 통해 모든 속성을 받는 단일 필드 user를 가질 수 있습니다. 이 경우 속성(ID 또는 이메일 주소) 중 하나만 제공할 수 있으며 반드시 제공해야 한다는 것을 알 수 있습니다:

type Query {
  user(by: UserByInput!): User
}
 
input UserByInput @oneOf {
  id: ID
  email: String
}

쿼리에서는 속성 중 정확히 하나에 대한 입력값을 제공합니다:

{
  tom: user(by: {
    id: 1
  }) {
    name
  }
 
  jerry: user(by: {
    email: "jerry@warnerbros.com"
  }) {
    name
  }
}

뉴스레터 구독하기

Gato GraphQL의 모든 업데이트를 놓치지 마세요.