RESTful API 의미
REST의
- 균일한 인터페이스를 제공한다.
- 균일한 리소스 식별자를 사용한다.
- 클라이언트가 원할 때 리소스를 수정하거나 삭제할 수 있어야 한다. 이를 위해 서버가 리소스와 사용 방법을 자세하게 설명하는 메타데이터를 전송한다.
- 클라이언트는 다른 관련 리소스에 대한 정보를 받아야 한다. 이를 위해 서버가 표현에 하이퍼링크를 넣어 전송한다.
- 무상태이므로 서버가 이전의 요청과 독립적으로 클라이언트의 요청을 완료한다.
- 계층화 시스템을 제공한다.
- 서버와 클라이언트가 아닌, 다른 중개자와도 연결될 수 있고 다른 서버와 연결될 수도 있다.
- 계층은 클라이언트로부터는 숨긴다.
- 캐시 가능 또는 불가능을 지정할 수 있다.
- 클라이언트의 일부 응답을 저장한다.
- 중복되고 자주 등장하는 데이터를 미리 캐싱해두고 다음 요청 때 캐시에서 직접 데이터를 내보낸다.
- 클라이언트 기능을 일시적으로 확장하거나 지정할 수 있다.
RESTful API의 장점
- 확장성이 좋다.
- 무상태 특징으로 인해 클라이언트 요청 정보를 가지고 있지 않다.
- 캐싱을 제거하기도 한다.
- 병목 현상을 막는다.
- 유연성이 좋다.
- 클라이언트와 서버를 완전히 분리한다.
- 독립적으로 기능을 변경할 수 있다.
- 독립성이 있다.
- 사용되는 기술과 독립적이라 API 설계에 영향을 주지 않는다.
RESTful API의 작동 과정
- 클라이언트가 서버에게 API 문서에 따라 요청을 전송한다.
- 서버가 클라이언트를 인증하고 권한을 확인한다.
- 서버가 요청을 수용하여 비즈니스 로직을 실행한다.
- 서버가 클라이언트에게 응답을 반환한다.
RESTful API 에서 클라이언트 요청의 형식
- 식별자
- Method
- GET
- POST
- PUT
- DELETE
- HTTP 헤더 : Data, Parameter
RESTful API 에서 서버 응답의 형식
- 상태 표시줄 (200, 201, 400, 404 등)
- 메세지 본문
- 헤더
'Spring > + α' 카테고리의 다른 글
API 기초 - API 의미, API 종류(WebSokcet, REST, Web), API 유형 (0) | 2023.11.22 |
---|---|
DTO, DAO에 대해서 (0) | 2023.11.15 |
JPQL과 QueryDSL에 대해 끄적 (0) | 2023.11.07 |
SpringBoot에 대해 끄적 (0) | 2023.09.27 |
JPA에 대해 끄적 (0) | 2023.09.27 |