[nodejs] GraphQL 쿼리 언어 변수 입력값 예시

GraphQL은 클라이언트가 원하는 데이터를 정확히 지정할 수 있도록 API를 쿼리할 수 있는 강력한 기능을 제공합니다. 쿼리를 통해 데이터를 요청할 때 동적으로 변수를 입력하여 유연하게 처리할 수 있습니다. 이 문서에서는 Node.js에서 GraphQL 쿼리 언어를 사용하여 변수를 입력하는 방법에 대해 알아보겠습니다.

1. GraphQL 변수 정의하기

먼저, GraphQL에서 변수를 정의하는 방법을 살펴보겠습니다. 변수는 쿼리나 뮤테이션 내에서 $ 기호를 사용하여 정의됩니다.

예를 들어, 아래와 같이 id라는 변수를 정의할 수 있습니다.

query GetUser($id: ID!) {
  user(id: $id) {
    name
    email
  }
}

위의 쿼리에서 $id는 ID 타입의 변수이며, !는 필수 값이라는 것을 의미합니다.

2. GraphQL 변수 입력값 전달하기

Node.js에서는 graphql 모듈을 사용하여 GraphQL 쿼리를 실행할 수 있습니다. 변수를 입력값으로 전달하기 위해서는 쿼리를 실행하는 함수의 두 번째 인수로 변수 객체를 전달해야 합니다.

아래는 Node.js에서 GraphQL 변수를 입력하여 쿼리를 실행하는 예시입니다.

const { graphql, buildSchema } = require('graphql');

// 스키마 정의
const schema = buildSchema(`
  type User {
    id: ID!
    name: String
    email: String
  }

  type Query {
    user(id: ID!): User
  }
`);

// 더미 데이터
const fakeDatabase = {
  '1': { id: '1', name: 'Alice', email: 'alice@example.com' },
  '2': { id: '2', name: 'Bob', email: 'bob@example.com' },
};

// 쿼리 실행 
graphql(schema, '{ user(id: $id) { name email } }', null, null, { id: '1' }).then(response => {
  console.log(response);
});

위의 예시에서, graphql 함수의 다섯 번째 인수로 { id: '1' } 객체를 전달하여 user 쿼리의 id 변수에 값을 입력했습니다.

이렇게 GraphQL 변수를 입력하여 쿼리를 실행하면 해당 변수를 고려한 데이터가 반환됩니다.

이렇게 GraphQL 쿼리 언어 변수 입력값을 활용하면 동적으로 데이터를 요청하고 처리하는 데 매우 유용합니다.

이상으로 GraphQL 쿼리 언어 변수 입력값에 대한 예시를 살펴보았습니다.

참고 자료