Rest-API vs Graphql-API

조향래·2022년 8월 20일

먼저 API란, HTTP요청을 Back-End 컴퓨터에 보냈을 때 실행되는 Back-End 기능이다.
쉽게 말해 API는 함수라고 할 수 있는데, 요청을 보낼때 데이터는 API 함수로 들어갈 인자이고, 응답으로 받게되는 데이터가 API함수의 return 값이다.
API의 종류에는 크게 Rest-APIGraphql-API가 있다.

Rest-API와 Graphql-API의 차이점

함수 이름의 차이

  • Rest-API는 API 이름이 마치 홈페이지 주소처럼 생겼다.
    ex)
    -네이버에서 1번 게시글 조회 => naver.com/board/1,
    -네이버에서 철수 프로필 조회 => naver.com/profile/철수
  • GraphQL-API는 API 이름이 일반적인 함수와 같다.
    ex)
    -board(1), profile("철수")

응답 결과물의 차이

  • Rest-API 는 응답 결과로 back-End 개발자가 만든 함수에서 보내주는 모든 데이터를 받아야만 한다.
  • GraphQL-API는 back-End 개발자가 만든 함수에서 필요한 데이터만 골라 받을 수 있다.

예를 들어, 게시글 데이터에 글번호, 작성자, 제목, 내용, 작성일이 있다면
Rest-API는 모든 데이터를 다 받아야하지만, Graphql-API는 제목과 내용만 필요하다면 필요한 데이터만 받을 수 있다.

이러한 이유로 각각 전송 요청 라이브러리도 다른 것을 사용한다.
Rest-API는 axios, Graphql-API는 apollo-client를 사용한다.

CRUD Method

API는 크게 4가지 방식으로 구분된다.

  1. 새로운 것을 생성하는 CREATE API
  2. 기존의 것을 조회하는 READ API
  3. 기존의 것을 수정하는 UPDATE API
  4. 기존의 것을 삭제하는 DELETE API

그런데 이 API들은 Rest인지 Graphql인지에 따라 다른 메서드가 사용된다.

Rest-API는 각각의 API마다 POST, PUT, DELETE, GET이라는 메서드가 존재하지만, Graphql-API는 데이터를 조작하지 않고 조회만 할때는 QUERY, 그 외에 데이터를 조작할 때는 MUTATION을 사용한다.

정리

0개의 댓글