IT STUDY LOG

[HTTP] 03. 잘 설계된 HTTP API (REST API) 본문

devops bootcamp 4/개발 및 배포

[HTTP] 03. 잘 설계된 HTTP API (REST API)

roheerumi 2023. 3. 22. 15:57

# 학습 목표

  • REST API에 대해 이해할 수 있다.
    • REST API 문서를 읽을 수 있다.
    • REST API에 맞춰 디자인할 수 있다.
  • HTTPS의 개념을 이해할 수 있다.
    • HTTP와 HTTPS의 차이점을 이해할 수 있다.

 


# 학습 내용

1.  잘 설계된 HTTP API (REST API)

  • REST API란
    • Representational State Transfer”의 약자로 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처
    • 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식
  • 리차드슨의 REST 성숙도 모델
    • REST 성숙도 모델 - 0단계
      • 단순히 HTTP 프로토콜을 사용하기만 해도 되는 단계
      •  
    • REST 성숙도 모델 - 1단계
      • 1단계에서는 개별 리소스와의 통신을 준수해야 함
      • 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야 함(엔드포인트 작성 시에는 동사, HTTP 메소드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직)
      • 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 함
    • REST 성숙도 모델 - 2단계
      • CRUD에 맞게 적절한 HTTP 메소드를 사용하는 것에 중점
        • READ : GET을 사용하고 경우 query parameter를 사용해 리소스 전달
        • CREATE : POST 메서드를 사용하고 요청에 대해 응답이 어떻게 반환되는지도 중요
        • (예) 새롭게 생성된 리소스를 보내줄 경우 응답코드를 201로 전달해야 하고, Location 헤더에 URI를 명시해주어야 함
      •  
      • 메소드 사용 규칙
        • GET  :  서버의 데이터를 변화시키지 않는 요청에 사용
        • POST : 요청마다 새로운 리소스를 생성하므로 PUT과 구분하여 사용
        • PUT : 교체 용도
        • PATCH : 수정 용도
      • 참고 : MDN HTTP request methods
    • REST 성숙도 모델 - 3단계
      • HATEOAS(Hypertext As The Engine Of Application State)
      • 하이퍼미디어 컨트롤을 적용
      • 응답에 리소스의 URI를 포함한 링크 요소를 삽입하여 작성
      • 응답에 들어가게 되는 링크 요소는 응답을 받은 다음에 할 수 있는 다양한 액션들을 위해 많은 하이퍼미디어 컨트롤을 포함
  • 참고 레퍼런스

'devops bootcamp 4 > 개발 및 배포' 카테고리의 다른 글

[HTTP] 05. HTTPS  (0) 2023.03.23
[HTTP] 04. REST API 문서 작성  (0) 2023.03.23
[HTTP] 02. HTTP 헤더  (0) 2023.03.22
[HTTP] 01. Cookie  (0) 2023.03.22
[(사전준비) 개발 환경 구축] 02. Docker 설치  (0) 2023.03.22
Comments