[typescript] REST API 호출 시 반환되는 응답 데이터의 필드 선택 방법

일반적으로 REST API는 클라이언트가 요청한 데이터를 JSON 형식으로 반환합니다. 그 중에서도 클라이언트가 필요한 필드만을 선택해서 받고 싶을 때가 있습니다. 이러한 경우, 특정 필드만을 선택하여 응답을 받아오는 방법을 살펴보겠습니다.

GraphQL

GraphQL은 REST API의 한 대안으로, 클라이언트가 필요한 필드만을 선택하여 요청하고 받을 수 있도록 하는 쿼리 언어입니다. 이를 통해 클라이언트는 요청할 때 어떤 필드를 받기 원하는지 명시적으로 지정할 수 있습니다.

GraphQL을 사용하면, 클라이언트는 원하는 데이터에 대한 요청을 작성하고, 서버는 해당 요청에 맞게 필드를 선택하여 응답합니다.

const query = `
  {
    user(id: "123") {
      name
      email
    }
  }
`;

위의 예제에서 nameemail 필드만을 선택하여 요청하고, 서버는 해당 필드만을 응답으로 주게 됩니다.

REST API에서 필드 선택

그러나 대부분의 경우에는 GraphQL을 사용하지 않고, 기존의 REST API에서 필요한 필드만을 선택하여 받아오고 싶을 때도 있습니다. 이때는 REST API 자체에서 필드를 선택하는 방법이 아니라, 클라이언트 측에서 응답을 가공하여 필요한 필드만을 추출하는 방법을 사용합니다.

fetch('https://api.example.com/user')
  .then(response => response.json())
  .then(data => {
    const { name, email } = data;
    // name과 email 필드만을 사용
  });

위의 예제에서는 fetch를 사용하여 REST API를 호출한 후, 받아온 응답 데이터에서 필요한 필드인 nameemail만을 추출하여 사용하고 있습니다.

정리

GraphQL을 사용하면 클라이언트 측에서 원하는 필드만을 명시적으로 선택하여 받아올 수 있지만, 기존의 REST API에서는 클라이언트 측에서 응답 데이터를 가공하여 필요한 필드만을 선택하는 방법을 사용합니다.

이러한 선택 방법은 API의 구조와 클라이언트의 요구에 따라 다를 수 있으며, 각각의 상황에 맞게 적절한 방법을 선택하여 사용해야 합니다.

참고 자료