RESTful API

Kyoorim LEE·2023년 7월 26일
0

스스로TIL

목록 보기
24/34

REST API

REST (Representational State Transfer)
웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식

RESTful API 특징

1. 자원(Resource): RESTful API는 자원을 표현하는 개념을 중심으로 설계된다. 각 자원은 고유한 식별자(URI)를 가지고 있으며, 이러한 자원들에 대한 CRUD(Create, Read, Update, Delete) 작업을 HTTP 메서드를 통해 수행한다.

ex) 마치 식당에서 메뉴판을 제공하듯, 서버는 클라이언트가 리소스를 잘 활용할 수 있도록 인터페이스를 제공해줘야하는데 그것을 API라고 함

2. URI(Uniform Resource Identifier): 각 자원은 고유한 URI를 갖는다. URI는 자원을 식별하고 리소스를 나타내는 이름으로 구성된다.

브라우저 검색창을 클릭하면 나타나는 주소, URI > URL
URI: 식별자
URL: 식별자 + 위치
ex) naver.com => URI, 리소스의 이름만 나타냄
ex) https://naver.com => URL, 이름과 더불어 프로토콜(https)와 함께 도달하는 위치까지 나타냄

3. HTTP 메서드: RESTful API는 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 자원에 대한 작업을 정의함.

4. 상태의 관리(Stateless): RESTful API는 Stateless한 특성을 가지며, 각 요청은 그 자체로 서버에 대해 충분한 정보를 포함하고 있어야 한다. 서버는 클라이언트의 상태 정보를 관리하지 않고, 각 요청이 독립적으로 처리되도록 설계되어야 한다.

클라이언트와 서버가 HTTP로 통신하는 과정에서 HTTP가 클라이언트나 서버의 상태를 확인하지 않음.
ex) 사용자가 쇼핑몰에 로그인하거나, 상품을 클릭해서 상세화면으로 이동하고, 카트에 상품을 넣고 로그인 하는 등의 행위를 HTTP통신이 추적하지는 않음
쇼핑몰에서는 이런 상테를 저장해둬야할 필요가 있지만 HTTP는 통신 규약일 뿐 상태를 저장하지 않음으로 다른 방법(쿠키-세션, API)등을 통해 확인해야함

RESTful API의 핵심원칙

1. URI

URI(Uniform Resource Identifier)는 자원을 고유하게 식별하는 주소를 의미한다. RESTful API에서는 각 자원이 URI를 통해 고유하게 식별되며, 클라이언트는 URI를 사용하여 서버에 요청을 보내고 해당 자원에 접근한다.
예를 들어, 다음과 같은 URI를 가진 RESTful API가 있다고 가정하자

GET /users/123

위의 URI는 "/users" 컬렉션에서 ID가 123인 사용자를 조회하는 요청을 나타낸다. 이러한 URI를 통해 클라이언트가 원하는 특정 사용자를 식별하고 접근할 수 있다.

2. Stateless

Stateless는 RESTful API의 또 다른 중요한 원칙으로, 서버가 클라이언트의 상태를 관리하지 않는 것을 의미한다. 각각의 요청은 독립적이며, 이전 요청들과는 상관없이 서버는 클라이언트의 상태 정보를 유지하지 않는다.

Stateless API의 특징

  1. 각 요청은 모든 필요한 정보를 포함해야 한다. 서버는 클라이언트의 상태를 알지 못하므로, 요청에 필요한 모든 정보를 클라이언트가 제공해야 한다.
  2. 클라이언트와 서버 간의 세션을 유지하지 않는다. 클라이언트와 서버는 상태 정보를 공유하지 않으며, 각 요청은 그 자체로 완전한 정보를 가지고 있어야 한다.
  3. 서버의 확장성을 향상시킨다. 상태를 관리하지 않으므로 새로운 서버 인스턴스를 추가하여 부하를 분산시키는 것이 간단하고 안정적으로 이루어질 수 있다.
profile
oneThing

1개의 댓글

comment-user-thumbnail
2023년 7월 27일

좋은 글 감사합니다.

답글 달기