REST API에 대해 설명해주세요
REST
REST
는 REpresentational State Transfer
를 의미한다.
REST API에 대해 알아야 할 것은 모두 통신에 관한 것이다.
"restful web service"는 통신을 위해 REST API를 사용하는 서비스이다.
왜 나왔는가?
Q. 어떻게 인터넷에서 정보를 공유할 것인가? A. 정보들을 하이퍼텍스트로 연결한다.
- 표현 방식: HTML
- 식별자: URI
- 전송 방법: HTTP
웹을 망가뜨리지 않고 HTTP를 진보시킬 수 있을까?
-> HTTP Object Model
이후에 REST로 변경된다.
API
SOAP
REST API
REST는 분산 하이퍼미디어 시스템(ex: web)을 위한 아키텍처 스타일이다.
REST를 구성하는 스타일
- client-server
- stateless
- cache
- uniform interface
- layered system
- code-on-demand (optional)
Uniform Interface의 제약조건
Self-descriptive message
HATEOAS
독립적 진화
- 서버와 클라이언트가 각각 독립적으로 진화
- 서버의 기능이 변경되어도 클라이언트를 업데이트할 필요가 없음
- REST를 만들게 된 계기: "웹을 망가뜨리지 않고 HTTP를 진보시킬 수 있을까?"
웹
- 웹 페이지를 변경했다고 웹 브라우저를 업데이트할 필요는 없음
- 웹 브라우저를 업데이트했다고 웹 페이지를 변경할 필요도 없음
- HTTP 명세가 변경되어도 웹은 잘 동작
- HTML 명세가 변경되어도 웹은 잘 동작
REST API의 이점
REST API는 커뮤니케이션에 대한 간단하고 표준화된 접근 방식이다.
확장 가능하고 stateless
하다.
stateless
REST 아키텍처는 클라이언트의 상태가 서버에 저장되지 않는다. 매 요청마다 모든 필요한 정보를 포함해야 한다.
GPT로 문장 정리하기
REST API에 대해 설명해줘
- REST(Representational State Transfer)는 웹 서비스 아키텍처의 한 형태로
- 자원을 표현하고 자원에 대한 상태를 전송하는 방법을 정의
- 주요 특징은 다음과 같음
- 자원(Resource): 모든 자원은 고유한 식별자(URI) 소유. 자원은 서버에 존재하며 URI를 통해 자원을 식별하고 요청
- 표현(Representation): 자원의 상태는 여러 형태로 표현. 클라이언트가 원하는 형태의 표현을 요청하고 서버는 해당 형태로 응답
- 무상태(Stateless): 각 요청은 클라이언트의 상태를 서버에 저장하지 않음. 모든 정보를 요청 자체에 포함하여 처리.
- 통합(Uniform Interface): 일관된 인터페이스를 제공. 자원에 대한 표현을 통일되게 다루고 URI를 통해 자원을 식별하며 메시지를 통해 자원과 상태에 대한 조작
- HTTP 메서드를 사용하여 자원에 대한 다양한 조작 표현
- GET, POST, PUT, DELETE
- 간결하고 일관된 설계로 이해하기 쉬움
- 다양한 클라이언트와 서버 간의 통신을 간소화하고, 웹 서비스를 효율적으로 개발
키워드 정리
Stateless
HTTP Method
HTTP Status Code