[nodejs] GraphQL 쿼리 언어 변수 사용
GraphQL은 클라이언트에서 서버로 데이터를 요청할 때 사용하는 강력한 쿼리 언어입니다. 이 쿼리 언어를 사용하면 클라이언트는 필요한 데이터만을 요청할 수 있고, 서버는 정확히 그에 맞는 응답을 제공할 수 있습니다. 이때, GraphQL에서 변수를 사용하면 쿼리의 유연성을 높일 수 있습니다.
변수 선언하기
GraphQL에서 변수를 사용하기 위해서는 쿼리나 뮤테이션에 $
기호를 사용하여 변수를 선언해야 합니다. 변수를 선언할 때는 변수의 이름과 타입을 지정해주어야 합니다. 예를 들면 다음과 같습니다.
query ($userId: ID!) {
user(id: $userId) {
name
email
}
}
위의 예제에서 $userId
는 ID 타입의 변수를 나타내며, !
는 이 변수가 필수적으로 제공되어야 함을 의미합니다.
변수 사용하기
변수를 사용하기 위해서는 쿼리나 뮤테이션을 실행할 때 실제 변수의 값과 함께 전달해주어야 합니다. 이때 변수의 이름과 값을을 매칭시켜 주어야 합니다. 예를 들면 다음과 같습니다.
{
"userId": "123"
}
위의 예제에서 "userId"
는 앞서 선언된 $userId
변수에 실제로 전달되는 값입니다.
예시
다음은 Node.js에서 GraphQL을 사용하여 변수를 이용한 쿼리 예시입니다.
const { ApolloClient, InMemoryCache, gql } = require('@apollo/client');
const client = new ApolloClient({
uri: 'http://example.com/graphql',
cache: new InMemoryCache()
});
const userId = '123';
client.query({
query: gql`
query GetUserData($userId: ID!) {
user(id: $userId) {
name
email
}
}
`,
variables: { userId }
})
.then(result => console.log(result.data))
.catch(error => console.error(error));
위의 예제에서 GetUserData
쿼리는 $userId
변수를 사용하여 특정 사용자의 이름과 이메일 정보를 요청하고 있습니다.
GraphQL에서 변수를 사용하면 동적으로 쿼리를 구성하고 다양한 상황에 대응할 수 있는 강력한 기능을 사용할 수 있습니다.
참고 자료
- GraphQL Variables - GraphQL 공식 문서의 변수 관련 내용
- Apollo Client - Apollo Client 공식 문서에서 기본 쿼리와 변수 사용 방법 확인 가능