REST API알기 위해선 REST부터 알아야한다.
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
즉, REST는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.
웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여한다.
CRUD Operation
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT)
Delete : 삭제(DELETE)
HEAD: header 정보 조회(HEAD)
REST 기반으로 서비스 API를 구현한 것
최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공한다.
REST한 방식으로 클라이언트와 서버간 상호 데이터 교환을 하는 API이며, 서로간에 stateless한 특징을 가지는 API입니다.
- 보기 좋다.
URL만 보고 어떤 자원에 접근할 것인지, 메소드를 보고 어떤 행위를 할지 알 수 있기 때문에, 개발을 할때 용이합니다.- 자원을 아낄 수 있다.
1개의 URI로 4개의 행위(CRUD)를 명시할 수 있기 때문에, 굉장히 효율적입니다.- stateless한 상태를 유지할 수 있다.
이게 제일 중요합니다.
REST API의 가장 큰 특징으로, 다양한 브라우저와 모바일에서 통신할 수 있도록 합니다.
클라이언트가 서버에 종속적이지 않아도 되기때문에, scale out한 상황에서도 용이합니다.
gRPC (Google 원격 프로시저 호출)는 RPC 설계의 하위 유형입니다. g RPC 는 마이크로서비스 아키텍처의 유연성과 속도를 보장하는 고성능 글로벌 오픈 소스 RPC 아키텍처입니다. 함수 호출은 다양한 코딩 언어를 사용하여 생성된 마이크로서비스에서 고객 상호 작용을 보장하기 위해 g RPC 에서 사용됩니다.
GraphQL 은 Graph Query Language 의 줄임말이다.
GraphQL API 는 주로 하나의 Endpoint 를 사용한다.
GraphQL API 는 요청할 때 사용한 Query 문에 따라 응답의 구조가 달라진다.
GraphQL 은 다음과 같은 장점을 가진다.
HTTP 요청의 횟수를 줄일 수 있다.
HTTP 응답의 Size 를 줄일 수 있다