input type 이란?
스칼라 값을 인자로 전달하는 것은 했지만, 객체를 인자로 전달하는 경우도 가능하다.
입력 타입을 정의하여 인자의 타입으로 명시하면 된다.
입력 타입은 type 대신
input
이라는 키워드로 명시한다는 점 외에는 일반 객체 타입과 완전히 동일하므로, 인자의 타입을 객체로 명시할 때 사용된다는 점만 기억하면 된다.input type 정의 예시
type 대신 input 이라는 키워드로 명시하는 것 외에 특이점은 없다.
input ReviewInput { stars: Int! commentary: String }
뮤테이션에서 입력 객체 타입을 사용하는 예시
mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) { createReview(episode: $ep, review: $review) { stars commentary } }
{ "ep": "JEDI", # input type에 명시된 객체 형식에 맞게 객체로 전달한다. "review": { "stars": 5, "commentary": "This is a great movie!" } }