facebook이 만든 새로운 API 표준
프론트앤드 개발자가 데이터에 보다 쉽게, 정확히 접근 가능.
overfetching
만약 user의 정보를 받아올 때 REST API에서? /users/ GET
프론트엔드에서 필요한 정보만 DB에 요청 가능함
underfetching
하나를 위해 여러 요청할 때
만약 인스타그램 앱 시작? /feed, /notification, /user/1
REST API에서 하나를 완성하려고 많은 소스를 요청하는 것
graphQL에서는 url이 존재하지 않는다.
query {
feed{
comments
likeNumber
}
notifications {
isRead
}
user {
username
profilePic
}
}
feed: [
{
comments:1,
likeNumber:20
}
],
notifications: [
{
isRead: true
}
],
user: [
{
username:"jihyun"
profilePic:"http"
}
]
query : data 받고싶을 때
mutation: server, db, 메모리 어디에서든 정보를 바꿀 때