Application Programming Interface 의 약자로 서로 다른 소프트웨어 응용 프로그램이 통신하며 데이터를 교환할 수 있도록 하는 일련의 규칙, 프로토콜 역할을 한다.
예를 들자면, 식당에가서 우리가 주문서에 주문할 내용을 적는것과 같다.
즉 API는 이 주문명세서에 해당하는것이다.
REST 라는것은 Representational State Transfer 의 약자로
데이터 교환을 쉽게하고자 하는데 중점을 둔 아키텍쳐 스타일이다.
(별도의 전송계층 필요 X)
데이터를 교환하고자 하는 방식에는 여러 방법이 있다.
양방향 실시간 통신을 하는 웹소켓
클라이언트가 필요한 데이터만 요청할 수 있는 API 쿼리 언어인 그래프QL
HTTP/2 를 사용하며 Google에서 개발한 원격 프로시저 호출(RPC) gRPC
클라이언트가 일정한 간격으로 서버에 요청을 보내는 폴링 (Polling)
REST API 를 사용하며 얻는 이점으로는 단순성과 표준화이다.
RESTful API 라는것은 위의 REST API 잘 따르는 API이다
사용하기 쉬운 인터페이스를 제공하는 목표지만, 성능향상의 목적이 아니다.
따라서 시스템의 성능에 집중해야 할 서비스라면 RESTful API 에 집착할 필요는 전혀 없다.
또한 원칙을 일부 사용한다고 ful 하다고 말 할수도 없다.
1) URI는 정보의 자원을 표현해야 한다.