- 개념 ✔️
- REST ✔️
- REST API ✔️
- RESTful ✔️
API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
프로그램들이 서로 상호작용하는 것을 도와주는 매개체. 정보 교환을 가능하게 한다.
-
서버와 데이터베이스에 대한 출입구 역할을 한다.
모든 사람들이 데이터베이스에 접근할 수 없게 하며, 허용된 사람들에게만 접근성을 부여한다.
-
어플리케이션과 기기가 원할하게 통신할 수 있도록 한다.
-
모든 접속을 표준화한다.
기계/운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다.
자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.
HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD 작동을 적용하는 것을 의미한다. 애플리케이션의 분리 및 통합을 위해 필요하다.
-
서버-클라이언트 구조
자원이 있는 쪽이 서버, 자원을 요청하는 쪽이 클라이언트
서버는 api를 제공하고 비즈니스 로직 처리 및 저장을 책임진다.
클라이언트는 사용자 인증이나 context(세션, 로그인 정보) 등을 직접 관리하고 책임진다.
서로 의존성이 줄어든다.
-
Stateless 무상태
Client의 context를 서버에 저장하지 않는다.
서버는 각 요청을 별개의 것으로 인식하고 처리한다.
-
Cacheable 캐시 처리 가능
HTTP 프로토콜을 그대로 사용하므로 캐싱 기능을 적용할 수 있다.
-
계층화
클라이언트는 rest api 서버만 호출한다. rest 서버는 다중 계층으로 구성될 수 있다.
-
인터페이스 일관성
URI로 지정한 리소스에 대한 조직을 통일되고 한정적인 인터페이스로 수행한다.
REST 기반으로 서비스 API를 구현한 것
-
URI는 정보 자원을 표현해야 한다.
/members/1 -
자원에 대한 행위는 http 메소드(GET, PUT, POST, DELETE 등)으로 표현한다.
GET /members/1 -
URI 마지막 문자로 슬래시(/)를 포함하지 않는다
-
파일 확장자는 포함하지 않는다
-
_(밑줄)은 사용하지 않는다
일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다. REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있다.
응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 말합니다. 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로, 정보 교환을 가능하게 합니다.
REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어 입니다. REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있습니다. 여기서 REST라는 것은 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 것을 의미합니다. REST API를 사용하면 서버와 클라이언트의 역활을 명확하게 분리할 수 있고, 메시지가 의도하는 바를 쉽게 파악할 수 있습니다. 또한, HTTP 프로토콜을 활용하기 때문에 캐싱 기능 등을 적용 할 수 있습니다.