[네트워크] GraphQL은 REST API이다.

cabbage·2023년 2월 14일
0

네트워크

목록 보기
8/10

REST API의 문제점

GraphQL은 REST API 방식의 문제점을 보완하기 위해 등장하였다. REST API 방식의 문제점은 아래와 같다.

  • API와 관련된 수많은 엔드포인트가 필요하다.
    • 상품 관련 API의 경우
    • POST 방식의 /products
    • GET 방식의 /products
    • PATCH 방식의 /products:id
    • DELETE 방식의 /products:id
  • 한번 요청할 때마다 하나의 API만 요청할 수 있다. (underFetching 문제)
    • 한 페이지에서 여러 API를 요청해야 하는 경우
    • 각각의 API를 한번씩 요청해서 응답받아야 한다.
  • 백엔드에서 응답하는 결과를 모두 받아야 한다. (overFetching 문제)

GraphQL은 REST API이다?

  • GraphQL은 REST API를 가공해서 만든 것이다.
  • GraphQL의 엔드포인트는 /graphql 이다.
    • REST API의 수많은 엔드포인트 문제를 보완한다.
  • GraphQL은 항상 POST 방식으로 동작한다.
    • GraphQL의 경우 요청 바디에 어떤 API를 요청하는지 작성해야 한다.
    • 요청 바디에 요청하고자 하는 여러 API들을 모두 담아 한번에 요청한다.
    • REST API의 underFetching 문제를 보완한다.
  • 요청 API에서 원하는 정보만 골라서 받을 수 있다.
    • 요청 바디에 원하는 정보만 명시하여, 명시한 정보만 가져올 수 있다.
    • REST API의 overFetching 문제를 보완한다.

주의할 점

  • GraphQL은 항상 POST 방식이다.
  • 요청 시 요청 바디에 여러 API를 담을 수 있어서, 어떤 API 요청이 성공하고 실패하는지 파악하기 어려워 전체 요청에 대한 상태 코드는 항상 200이다.
    • 에러가 발생하면 각각의 API에 대한 에러 메세지는 나타나지만 상태 코드는 200으로 응답된다.
profile
캐비지 개발 블로그입니다. :)

0개의 댓글