기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
GraphQL 필드
필드는 유형의 범위 내에 존재하며 GraphQL 서비스에서 요청한 값을 보유합니다. 이는 다른 프로그래밍 언어의 변수와 매우 유사합니다. 예를 들어, Person
객체 유형은 다음과 같습니다.
type Person { name: String age: Int }
이 경우 필드는 name
및 age
이고 각각 String
및 Int
값을 보유합니다. 위에 표시된 것과 같은 객체 필드를 쿼리 및 변형의 필드(작업)에서 입력으로 사용할 수 있습니다. 그 예로 아래 Query
를 참조하세요.
type Query { people: [Person] }
people
필드는 데이터 원본의 Person
에 있는 모든 인스턴스를 요청합니다. GraphQL 서버에서 Person
을 추가하거나 검색할 때 데이터가 유형 및 필드의 형식을 따를 것으로 예상할 수 있습니다. 즉, 스키마의 데이터 구조에 따라 응답에서 데이터가 구조화되는 방식이 결정됩니다.
} "data": { "people": [ { "name": "John Smith", "age": "50" }, { "name": "Andrew Miller", "age": "60" }, . . . ] } }
필드는 데이터를 구조화하는 데 중요한 역할을 합니다. 추가 사용자 지정을 위해 필드에 적용할 수 있는 몇 가지 추가 속성이 아래에 설명되어 있습니다.
List
목록은 지정된 유형의 모든 항목을 반환합니다. 대괄호 []
를 사용하여 필드 유형에 목록을 추가할 수 있습니다.
type Person { name: String age: Int } type Query { people: [Person] }
Query
에서 Person
주위의 대괄호는 데이터 원본의 Person
에 있는 모든 인스턴스를 배열로 반환한다는 것을 나타냅니다. 응답에서 각 Person
의 name
및 age
값은 구분된 단일 목록으로 반환됩니다.
} "data": { "people": [ { "name": "John Smith", # Data of Person 1 "age": "50" }, { "name": "Andrew Miller", # Data of Person 2 "age": "60" }, . # Data of Person N . . ] } }
특수 객체 유형에만 국한되지 않습니다. 일반 객체 유형의 필드에서도 목록을 사용할 수 있습니다.
null 아님
null 아님 필드는 응답에서 null이 될 수 없는 필드를 나타냅니다. !
기호를 사용하여 필드를 null이 아닌 필드로 설정할 수 있습니다.
type Person { name: String! age: Int } type Query { people: [Person] }
name
필드는 명시적으로 null이 될 수 없습니다. 데이터 원본을 쿼리하고 이 필드에 null 입력을 제공하면 오류가 발생합니다.
목록과 null이 아닌 필드를 조합할 수 있습니다. 다음 쿼리를 비교해 보세요.
type Query { people: [Person!] # Use case 1 } . . . type Query { people: [Person]! # Use case 2 } . . . type Query { people: [Person!]! # Use case 3 }
사용 사례 1에서는 목록에 null 항목을 포함할 수 없습니다. 사용 사례 2에서는 목록 자체를 null로 설정할 수 없습니다. 사용 사례 3에서는 목록과 해당 항목이 null일 수 없습니다. 하지만 어떤 경우에도 빈 목록을 반환할 수 있습니다.