<목차>
1. REST란?
2. REST API란?
1. REST란?
자원(resource)의 표현(representation)에 의한 상태 전달
Representational State Transfer의 약자로 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다.
자원 : 문서, 그림, 데이터 등 소프트웨어가 관리하는 모든 것
자원의 표현 : 그 자원을 표현하기 위한 이름
REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이며, 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
요청의 종류
REST 방식은 서버의 데이터 처리에 따라 클라이언트가 요청을 다르게 한다
GET : 데이터를 조회하기 위한 요청 메서드
POST : 데이터를 생성 및 저장하기 위한 요청 메서드
PUT : 전체 데이터를 변경하기 위한 요청 메서드
PETCH : 단일 데이터나 특정 데이터들을 변경하기 위한 요청 메서드
DELETE : 데이터를 삭제하기 위한 요청 메서드
2. REST API란?
REST API는 REST 아키텍처 스타일의 설계 원칙을 준수하는 API(Application Programming Interface)이다.
REST API 설계 원칙
1. 균일한 인터페이스
균일한 인터페이스는 모든 RESTful 웹 서비스 디자인의 기본이다.
동일한 리소스에 대한 모든 API 요청은 요청의 출처에 관계없이 동일하게 표시되어야 한다는 뜻!
즉, 서버가 표준 형식으로 정보를 전송함을 의미한다.
2. 클라이언트-서버 분리
REST API 설계에서 클라이언트 및 서버 애플리케이션은 서로 완전히 독립적이어야 한다.
클라이언트 애플리케이션이 알아야 하는 유일한 정보는 요청된 리소스의 URI이며, 서버 애플리케이션과 다른 방법으로 통신할 수 없다. 또한, 서버 애플리케이션은 HTTP를 통해 요청된 데이터에 클라이언트 애플리케이션을 전달하는 것 외에는 클라이언트 애플리케이션을 수정해서는 안된다.
3. 무상태
REST API는 무상태성이기 때문에 각 요청에는 처리에 필요한 모든 정보가 포함되어야 한다.
즉, REST API에는 서버 측 세션이 필요하지 않다는 의미이며, 서버 애플리케이션은 클라이언트 요청과 관련된 데이터를 저장할 수 없다.
4. 계층화 시스템
클라이언트와 서버 사이의 다른 승인된 중개자에게 연결할 수 있다. 또한, 서버는 요청을 다른 서버로 전달할 수 있다.
즉, 클라이언트 요청을 이행하기 위해 함께 작동하는 보안, 애플리케이션 및 비즈니스 로직등을 여러 계층으로 여러 서버에서 실행되도록 설계할 수 있다.
5. 캐시 가능성
가능한 경우 클라이언트나 서버 측에서 리소스를 캐시 할 수 있어야 한다. 또한, 서버 응답에는 전달된 리소스에 대해 캐싱이 허용되는지 여부에 대한 정보도 포함되어야 한다.
6. 온디멘드 코드(선택사항)
서버는 소프트웨어 프로그래밍 코드를 클라이언트에 전송하여 클라이언트 기능을 일시적으로 확장하거나 사용자 지정할 수 있다.
클라이언트가 사전에 구현해야 하는 기능의 수를 줄여 간소화가 가능하게 만들 수 있다.
참고자료
'Node.js' 카테고리의 다른 글
Node.js - MySQL 연결하기 (0) | 2024.07.01 |
---|---|
Node.js - ejs (0) | 2024.06.30 |
Node.js - express모듈 (0) | 2024.06.27 |
Node.js - fs모듈 (0) | 2024.06.24 |
Node.js - Stream, Buffer (1) | 2024.06.19 |