필드에 Args 전달하기
필드에 args 속성을 기술하면 매개변수를 사용할 수 있으며,
매개변수는 resolve에서 2번째 인자로 전달됩니다.
let tuple = new GraphQLObjectType({
name: "tuple",
fields: {
x: {
type: GraphQLString
},
y: {
type: GraphQLInt
}
}
});
let query = new GraphQLObjectType({
// name pattern
// ^[_a-zA-Z][_a-zA-Z0-9]*$
name: "pass_argument_query",
description: "필드에 매개변수를 전달한다.",
fields: {
pass: {
type: tuple,
args: {
x: {
type: GraphQLString
},
y: {
type: GraphQLInt
}
},
resolve: (parent, args) => {
// 매개변수는 args에 전달된다.
let x = args.x;
let y = args.y;
console.log(x, y);
return args;
}
}
}
});
Input
GraphQL Input Object Type을 사용하면 공통되는 매개변수를 묶을 수 있습니다.
function foo(a, b, c, x) -> foo(input, x)
function bar(a, b, c, y) -> bar(input, y)
아래의 SDL은,
아래의 타입스크립트로 표현될 수 있습니다.
let tupleInput = new GraphQLInputObjectType({
name: "tuple_input",
fields: {
x: {
type: GraphQLString
},
y: {
type: GraphQLInt
}
}
});
let query = new GraphQLObjectType({
// name pattern
// ^[_a-zA-Z][_a-zA-Z0-9]*$
name: "input_object_query",
description: "필드에 매개변수를 전달한다.",
fields: {
pass: {
type: tuple,
args: {
input: {
type: tupleInput
}
},
resolve: (parent, args) => {
// 매개변수는 args에 전달된다.
let input = args.input;
let x = input.x;
let y = input.y;
console.log(x, y);
return input;
}
}
}
});
'# GraphQL > GraphQL.js' 카테고리의 다른 글
타입스크립트 GraphQL 재귀호출 recursion (0) | 2019.12.15 |
---|---|
타입스크립트 GraphQL Resolve Parameter 정보 (0) | 2019.12.15 |
타입스크립트 GraphQL Union Type 클래스 (0) | 2019.12.14 |
타입스크립트 GraphQL Interface Type 클래스 (0) | 2019.12.14 |
타입스크립트 GraphQL Object Type 클래스 (0) | 2019.12.11 |