GraphQL은 API에 접목시킬 수 있는 Query Language 입니다.
- GraphQL은 facebook이 만든 새로운 API 표준입니다.
- Graph 라는 자료구조에 Query Language가 합쳐진 개념입니다.
- server-side runtime for executing queries
먼저 REST API의 예시를 들어보겠습니다.
사용자가 블로그에 글을 쓰는 서비스를 구현하기 위해서는 최소 3가지 endpoint가 필요합니다.
/users/id
/users/id/posts
/users/id/followers
우선 id가 있어야 글을 작성할 수 있고, id를 통해서 post나 followers에 접근할 수 있습니다.
id, posts, followers 정보에 접근하기 위해 최소 3번 데이터 통신을 해야 하며,
백앤드 서버 상태에 따라 받아오는 주소 또한 상이해 질 수 있습니다.
하지만, gql과 함께 라면 어떨까요?
query {
User (id : "22doori22dori2dr") {
name
posts {
title
likes
}
followers(last: 3) {
name
}
}
}
Overfetching : 불필요한 데이터까지 다 받아오는 것
Underfetching : endpoint가 데이터를 덜 받아와서 요청을 여러번 날리는 것