본문 바로가기

공부 기록/영상 후기

제대로 이해하는 REST API

https://youtu.be/7LbylTMlj8M?si=w1AGt3jfRwc6yRmv

REST API

- RESTful한 API를 말하며 일련의 특징과 규칙 등을 지키는 API를 일컫는다.

 

REST API의 특징

1. Uniform-Interface : API에서 자원들은 각각의 독립적인(서로 종속적이지 않은) 인터페이스를 가지며 각각의 자원들이 url 자원 식별, 표현을 통한 자원 조작, Self-descriptive messages, HATEOAS 구조를 가지는 것을 말한다.

* url 자원 식별 : 자원은 url로 식별되어야 한다.

* 표현을 통한 자원 조작 : url과 GET, DELETE 등 HTTP 표준 메서드 등을 통해 자원을 조회, 삭제 등 작업을 설명할 수 있는 정보가 담겨야 한다.

* Self-descriptive messages : HTTP Header에 타입을 명시하고 각 메시지(자원)들은 MIME types에 맞춰 표현되어야 한다.

** MIME types : 문서, 파일 등의 특성과 형식을 나타내는 표준 (ex. application/json, text/plain ...)

* HATEOAS 구조 : 하이퍼링크에 따라 다른 페이지를 보여줘야 하며 데이터마다 어떤 URL에서 원했는지 명시해주어야 한다.

2. Stateless : REST API를 제공하는 서버는 세션을 해당 서버 쪽에 유지하지 않는다. 이 규칙은 HTTP 자체가 Stateless이기 때문에 HTTP를 이용하는 것만으로 만족된다.

3. Cacheable : HTTP는 기본적으로 cache-control=public으로 되어있기 때문에 캐싱이 된다. HTTP 메서드 중 GET에 한정되며 'Cache-Control:max-age=100'과 같은 식으로 한정된 시간을 정할 수 있다.

4. Client-Server 구조 : 클라이언트와 서버가 서로 독립적인 구조를 가져야 한다. 역시 HTTP를 통해 가능한 구조.

5. Layered System : 계층 구조로 나눠져 있는 아키텍처를 뜻한다.