[typescript] GraphQL 쿼리 변수 정의
GraphQL을 사용할 때 종종 쿼리에 변수를 전달해야 할 때가 있습니다. TypeScript에서 GraphQL 쿼리 변수를 정의하는 방법에 대해 알아보겠습니다.
GraphQL 쿼리와 변수
GraphQL은 쿼리를 통해 데이터를 요청하는데, 때에 따라서는 쿼리에 동적인 변수를 사용하여 특정 데이터를 요청해야 할 수도 있습니다. 예를 들어, 특정 유저의 정보를 요청할 때 유저의 ID와 같은 변수를 사용해야 할 수 있습니다.
TypeScript에서 변수 정의
TypeScript를 사용하면, GraphQL 쿼리에서 사용할 변수를 강력한 타입으로 정의할 수 있습니다. 이를 위해 먼저 GraphQL Query의 타입을 정의하고, 이 타입을 사용해 변수를 정의합니다.
import { gql } from '@apollo/client';
export const USER_DETAILS = gql`
query UserDetails($userId: ID!) {
user(id: $userId) {
id
name
email
}
}
`;
export type UserDetailsVariables = {
userId: string;
};
위 예제에서는 USER_DETAILS
라는 GraphQL 쿼리를 정의하고, 해당 쿼리에 사용되는 변수를 UserDetailsVariables
타입으로 정의하였습니다.
쿼리 실행
실제로 쿼리를 실행할 때는 정의한 변수를 함께 전달해주어야 합니다.
import { useQuery } from '@apollo/client';
const userId = '123';
const { loading, error, data } = useQuery<UserDetailsData, UserDetailsVariables>(USER_DETAILS, {
variables: { userId },
});
위 예제에서는 useQuery
를 사용하여 USER_DETAILS
쿼리를 실행하고, UserDetailsVariables
타입의 변수를 전달하였습니다.
이렇게 TypeScript를 사용하여 GraphQL 쿼리 변수를 정의하고 실행하는 방법을 알아보았습니다.
참고문헌: