Rest-API vs Graphql-API

김영후·2022년 8월 8일
0
post-thumbnail

Server API

Server API는 적절한 요청을 했을 때 그에 맞는 응답을 되돌려 주는 창구(Endpoint)를 Web을 통해 노출한 것을 말한다.

이 Server API를 만드는 방법론 중 하나로 REST라는 것이 있으며,

이 방법론은 많은 Server API들을 구성하기 위해 사용되어왔고, 또 현재도 많이 사용되고 있다.



REST - API

REST - API란?

모든 Resource(자료, User)들을 하나의 Endpoint에 연결해놓고

각 Endpoint는 그 Resource와 관련된 내용만 관리하게 하자는 방법론이다.


좁은 의미로 HTTP를 통해 CRUD(Create, Read, Update, Delete)를 실행하는 API를 뜻한다.



RESTful

REST의 원리를 잘 지키는 시스템을 RESTful하다 라고 한다.

"각 구성요소들의 역할이 완벽하게 분리되어 있는 것"

URI는 각 리소스를 명확하게 인식할 수 있도록 용이한 표현방식을 가져야 한다.

각 리소스에 대한 행위를 HTTP 메소드를 이용하여 일관성 있게 정의해야 한다.


어떻게 URI을 설계해야 하는가?

슬래시(/)를 이용해서 계층 관계를 표현한다.

언더스코어(_) 사용 자제

명사 위주



REST - API의 장점

REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍쳐 스타일

HTTP 프로토콜을 사용하므로 REST API 사용을 위한 인프라를 구축할 필요가 없다.
HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 호환된다.(범용성)

REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.

서버와 클라이언트의 역할을 명확하게 분리한다.



REST - API의 단점

표준이 존재하지 않는다.
사용할 수 있는 메소드가 4개 밖에 없다.
필요한 정보만 가져오는 것이 아니라 전체를 가져온다.



Graphql - API

Graphql은 Graph Query Language의 줄임말

기존 REST - API의 단점을 개선하기 위해 facebook에서 만들었다.


REST - API와의 차이점

주로 전체 API를 위해서 하나의 Endpoint를 사용한다.

요청할 때 사용한 Query 문에 따라 응답의 구조가 달라진다.

백엔드에서 지정해놓은 틀이 거의 없기 때문에 유연하다.


Graphql - API의 장점

HTTP 요청의 횟수를 줄일 수 있다.
HTTP 응답의 size를 줄일 수 있다.


Graphql - API의 단점

File 전송 등 Text만으로 하기 힘든 내용들을 처리하기 복잡하다.

고정된 요청과 응답만 필요할 경우에는 Query로 인해 요청의 크기가 RESTful API의 경우보다 더 커진다.

재귀적인 Query가 불가능하다.

profile
https://poagg.tistory.com/ 로 이전합니다.

0개의 댓글