DevOps BootCamp/HTTP

REST API

cloudmaster 2023. 3. 22. 15:40

★ REST API란?

 - REST는 “Representational State Transfer”의 약자

 - 로이 필딩의 박사학위 논문에서 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로 처음 소개

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

3단계까지 지키기 어렵기 때문에 2단계까지만 적용해도 좋은 API 디자인이라고 볼 수 있고, 이런 경우 HTTP API라고 부름

0 단계

 > HTTP 프로토콜을 사용하는 것이 REST API의 출발점

 

1 단계

 > 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야 한다는 것과 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 한다는 것

 - 엔드포인트 작성 시에는 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직 방법

 - 응답으로 리소스를 전달할 때에도 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공/실패 여부를 반환

 

2 단계

 > CRUD에 맞게 적절한 HTTP 메소드를 사용하는 것에 중점

  • GET 메소드 같은 경우는 서버의 데이터를 변화시키지 않는 요청에 사용해야 합니다.
  • POST는 요청마다 새로운 리소스를 생성하고 PUT 은 요청마다 같은 리소스를 반환합니다. 이렇게 매 요청마다 같은 리소스를 반환하는 특징을 멱등하다고 합니다. 그렇기 때문에 멱등성을 가지는 메서드 PUT과 그렇지 않은 POST는 구분하여 사용해야 합니다.
  • PUT과 PATCH 도 구분하여 사용해야 합니다. PUT은 교체, PATCH는 수정의 용도로 사용합니다.

 

3 단계

 >  HATEOAS(Hypertext As The Engine Of Application State)라는 약어로 표현되는 하이퍼미디어 컨트롤을 적용

 

'DevOps BootCamp > HTTP' 카테고리의 다른 글

HTTPS  (0) 2023.03.26
HTTP 주요 헤더  (0) 2023.03.22
Cookie  (0) 2023.03.22