ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RESTful API
    CS/네트워크 2022. 3. 16. 12:45
    728x90

    REST란?

    • REST는 (자원: 리소스)의 표현에 의한 상태(정보) 전달이라는 뜻이다.
    • REST(Representational State Transfer)는 효율적, 안정적이며 확장 가능한 분산 시스템을 가져올 수 있는 소프트웨어 아키텍처 디자인 제약의 모음이다. 그리고 그 제약들을 준수했을 때 그 시스템은 RESTful 하다고 말한다.
    • HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처 (기술이 아니다.)

     

    REST API의 구성

    자원(resource), 행위(verb), 표현(representations)

    구성 요소 내용 표현 방법
    자원(resource) 자원 URI(엔드포인트)
    행위(verb) 자원에 대한 행위 HTTP 요청 메서드
    표현(representations) 자원에 대한 행위의 구체적 내용 페이로드

     

    REST API 설계 원칙

    REST에서 가장 중요한 기본적인 원칙은

    • URI는 리소스를 표현하는데 집중해야한다.
    • 행위에 대한 정의는 HTTP 요청 메서드를 사용한다.

    예를 들어, 

    /cook/chicken

    /cook/hotdog

    /cook/chicken/ingredients 와 같이 URI에 리소스를 표현하여 정보에 대한 예측이 가능하게 한다.

    주의할 점은 URI에 cook을 letscook과 같이 행위에 대한 표현(동사)을 사용하지 않는다.

     

     

    REST API에서의 URI 구조

    Collection      
    Document id(일반적인 객체 구분값) title body
      1 chicken ...
      2 hotdog ...

     

    (/cook/) 테이블 전체의 객체들의 집합을 Collection이라 하고 복수명사를 사용한다.

    (/chicken , /hotdog) Collection에서 객체를 구분할 수 있는 값인 행 혹은 객체에 해당하는 부분을 Document라고 한다.

     

     

    REST API의 행위

    HTTP 요청 메서드는 클라이언트가 서버에게 요청의 종류와 목적(리스소에 대한 행위)을 알리는 방법이다.

    주로 5가지 요청 메서드(GET, POST, PUT, PATCH, DELETE 등)를 사용하여 CRUD를 구현한다.

    HTTP 요청 메서드 종류 목적 페이로드
    GET Read(index/retrieve) 모든/특정 리소스 취득 X
    POST Create 리소스의 생성 O
    PUT Update(replace 리소스의 전체 교체 O
    PATCH Update(modify)  리소스의 일부 수정 O
    DELETE Delete 모든/특정 리소스 삭제 X

     

     

    참고:

    모던 자바스크립트 Deep Dive

    https://www.service-architecture.com/articles/web-services/representational-state-transfer-rest.html

    https://www.restapitutorial.com/lessons/whatisrest.html

    https://developer.mozilla.org/ko/docs/Glossary/REST

    728x90

    'CS > 네트워크' 카테고리의 다른 글

    쿠키&로컬스토리지  (0) 2022.05.06
    Load Balancing  (0) 2022.03.20
    TCP / UDP  (0) 2022.03.15
    URL에 www.naver.com을 입력하면 무슨 일이 일어날까?  (0) 2022.03.02
    TCP/IP 모델  (0) 2022.03.02

    댓글

oguuk Tistory.