Rest-API vs GraphQL-API

바유·2022년 3월 30일
0
post-thumbnail

Rest-API

REpresentational State Transfer: HTTP를 통해 CRUD(Create, Read, Update, Delete)를 실행하는 API를 뜻한다.

장점: HTTP 표준프로토콜을 따르는 모든 플랫폼에서 호환
서버와 클라이언트의 역할을 명확하게 분리
단점: 사용할수 있는 메소드가 4가지
구형의 브라우저가 아직 지원하지 못하는 부분이 존재

GraphQL-API

Graph Query Language

Query Language
->질의문(Query)을 만들기 위해 사용되는 Computer 언어

왜쓸까?
ESTful API 로는 다양한 기종에서 필요한 정보들을 일일히 구현하는 것이 힘들었다.이 때문에 정보를 사용하는 측에서 원하는 대로 정보를 가져올 수 있으며 보다 편하게 정보를 수정할 수 있도록 하는 표준화된 Query language 를 만들게 되었다.

ex:) iOS , Android 필요한 정보들이 조금씩 다르고, 그 다른 부분마다 API 를 구현하는 것이 힘들었다.

장점: HTTP 요청의 횟수, HTTP 응답의 Size ↓
단점: Text 만으로 하기 힘든 내용들을 처리하기 복잡 ex)file 전송,
요청의 크기가 RESTful API 의 경우보다 더 커진다. ex)고정된 요청과 응답
재귀적인 Query 가 불가=(결과에 따라 응답의 깊이가 얼마든지 깊어질 수 있는 API 를 만들 수 없다.)

WHEN?

GraphQL
서로 다른 모양의 다양한 요청들에 대해 응답할 수 있어야 할 때
대부분의 요청이 CRUD(Create-Read-Update-Delete) 에 해당할 때

RESTful
HTTP 와 HTTPs 에 의한 Caching 을 잘 사용하고 싶을 때
File 전송 등 단순한 Text 로 처리되지 않는 요청들이 있을 때
요청의 구조가 정해져 있을 때

Question icons created by Freepik - Flaticon

reference
https://velog.io/@djaxornwkd12

0개의 댓글