TIL | GraphQL

송치헌·2021년 11월 4일
0
post-thumbnail

REST와 GraphQL의 차이


  • REST는 Resource의 형태와 요청 방법이 하나로 연결되어 있다.
  • GraphQL은 Resource의 형태와 요청 방법이 완전히 분리되어 있다.

REST

  • GET : /books/1
{
    "title" : "Romeo and Juliet",
    "author" : {
        "name" : "william shakespeare",
        "nation" : "UK",
        "birth" : 1564
    }
}

GraphQL

  • type definition
type Book {
    id: ID
    title: String
    author: Author
}
type Author {
    id: ID
    name: String
    birth: Int
    books: [Book]
}
  • Query
type Query {
	book(id: ID!): Book
	author(id: ID!): Author
}
  • Request : /graphql?query={ book(id: "1") { title, author { name } } }
{
  "title": "Romeo and Juliet",
  "author": {
    "name": "william shakespeare",
  }
}

REST와 다르게 GraphQL은 하나의 엔드포인트에 접근한다.

pros & cons


pros

  • 클라이언트에서 필요로하는 데이터만 반환 가능
  • 한번의 호출로 원하는 데이터를 한번에 가져올 수 있음
  • REST API의 N+1 Problem을 해결할 수 있음
  • 대규모 서비스의 경우 엔드포인트 관리를 수월하게 할 수 있음

cons

  • 러닝커브가 존재함
  • 단순한 서비스에서는 사용하기 불편함
  • 요청이 text로 날라가기 때문에 파일과 같은 데이터는 처리하기 어려움
profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글