Restful API란?

suno·2023년 3월 27일
0
post-thumbnail

REST API란?

REST는 Representational State Transfer의 약자이며, 자원을 이름으로 구분하고, 상태를 주고받는 행위를 의미한다.

웹의 장점을 최대한 활용하기 위한 아키텍처로 발표되었다.


REST API의 구성

  • 자원 (resource) : HTTP URI
  • 행위 (verb) : HTTP Method
  • 표현 (representations) : HTTP Message Payload

REST API의 특징

1. Uniform Interface

UIR로 지정한 리소스에 대한 조작을 통일된 인터페이스로 수행한다.

2. Stateless

작업을 위한 상태정보를 따로 저장하지 않는다. 세션, 쿠키 정보를 별도로 관리하지 않기 때문에 API 서버는 들어오는 요청만을 처리한다.

이로인해 서비스의 자유도가 높아지고 구현이 단순해진다.

3. Cacheable

http 웹표준을 그대로 사용하기 때문에, 웹의 인프라를 그대로 사용할 수 있다.

http에서 사용하는 las-modified 태그나 e-tag를 이용해 캐싱을 구현할 수 있다.

4. Self-descriptiveness (자체 표현 구조)

REST API 메세지만 보고 이해할 수 있는 자체 표현 구조로 되어 있다.

5. Client - Server 구조

Client는 사용자 인증이나 세션, 로그인 정보 등을 관리하고, REST 서버는 API를 제공하는 구조로 역할이 확실히 구분된다.

이로인해 Client와 Server에서 개발해야 할 내용이 명확해지고 서로간 의존성이 줄어든다.

6. 계층형 구조

REST 서버는 다중 계층을 ㅗ구성될 수 있고, proxy, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있다.


REST API 디자인

1. URI는 정보의 자원을 표현해야 한다.

리소스명은 명사를 사용한다.

2. 자원에 대한 행위는 HTTP 메소드로 표현한다.

GET /members/delete/1 (X)
DELETE /members/1     (O)
    
GET /members/insert/2 (X)
POST /members/2       (O)

HTTP 메소드

  • POST : 리소스를 생성한다.
  • GET : 리소스를 조회한다.
  • PUT : 리소스를 수정한다.
  • DELETE : 리소스를 삭제한다.

REST API 서버 응답

  • 상태 코드
    • 200: 성공
    • 201: POST 메소드 성공
    • 400: 클라이언트의 잘못된 요청
    • 404: 리소스를 찾을 수 없음
    • 500: 서버에 문제가 있음
  • 메세지 본문
  • 헤더
    • 응답에 대한 헤더, 메타데이터
    • 서버, 인코딩, 날짜, 콘텐츠 유형 등



Reference

profile
Software Engineer 🍊

0개의 댓글