HTTP 요청을 사용하여 데이터에 접근 하고 사용하는 API 아키텍처 스타일이며,
GET, PUT, POST, DELETE 와같은 형태로 사용되는 것을 말합니다.
- 균일한 인터페이스 사용
- 클라이언트 - 서버 기반
- 상태 비저장 작업
- 리소스 캐싱
- 계층화된 시스템
- 온디멘트 코드
- HTTP 프로토콜 사용.
- 높은 범용성
- 표준이 존재하지 않는다
GraphQL은 페이스북이 개발한 API용 오픈소스 쿼리 언어입니다.
- 한번에 여러개의 API를 전송할 수 있어 요청의 횟수를 줄일 수 있습니다.
- 원하는 Data만 받을 수 있도록 지정할 수 있습니다.
- 고정된 요청과 응답만 필요할 경우에는 Query문으로 인해 요청의 크기가 RESTful API보다 더 커집니다.
RESTful API와 RGraphQL중 어느 한가지가 절대적으로 우월하지 않기 때문에 사용 형태에 따라 사용하고자 하는 형태를 선택하여 적용할 수 있습니다.
또한, 두가지 모두를 적용하는 형태 또한 가능합니다.
요청의 구조가 정해져 있을 때
파일 전송등의 Text로 처리되지 않는 자료를 처리해야 할 때
다양한 종류의 요청에 응답할 수 있어야 할때
CRUD 요청이 대부분일 때