REST-API
API 또는 애플리케이션 프로그래밍 인터페이스는 애플리케이션이나 디바이스가 서로 간에 연결하여 통신할 수 있는 방법을 정의하는 규칙 세트입니다. REST API는 REST(REpresentational State Transfer) 아키텍처 스타일의 디자인 원칙을 준수하는 API입니다. 이러한 이유 때문에 REST API를 종종 RESTful API라고도 합니다. - IBM
REST-API 특징
- Uniform Interface
- Client-Server
- Stateless
- Cacheable
- Layered System
REST-API의 구성 요소
- Resource: URI
- verb : HTTP Method
- Representation of Resource
GraphQL-API
GraphQL은 API용 쿼리 언어이며 데이터에 대해 정의한 유형 시스템을 사용하여 쿼리를 실행하기 위한 서버 측 런타임입니다. GraphQL은 특정 데이터베이스나 스토리지 엔진에 연결되어 있지 않으며 대신 기존 코드와 데이터로 뒷받침됩니다. - GraphQL
GraphQL은 Graph Query Language의 줄임말이며 REST-API의 한계를 개선하기 위해 Facebook에서 만든 쿼리 언어이다.
GraphQl 특징
- EndPoint가 하나로 구성되어 한번의 요청으로 많은 정보를 가져올 수 있다.
- Over-fetching, Under-fetching 등의 문제가 발생하지 않는다.
- 표준화된 쿼리 언어로 기종에 따라 따로 API를 구현할 필요가 없다.
GraphQL-API 구조
- Query : 조회(Read)를 담당한다.
- Mutation : 수정(Create, Update, Delete)을 담당한다.
- Schema : query, mutation를 사용하기 위해 type 등을 정의하는 곳
- Resolver : schema에 정의한 기능을 구현하는 곳