[HTTP/네트워크] REST API | RRM

Eunji Lee·2022년 12월 2일
0

[TIL] Front-end

목록 보기
17/36
post-thumbnail

RRM의 의미

  • RMM(Richardson Maturity Model): 좋은 REST API 디자인을 판단하는 기준
    • 0단계부터 3단계까지로 구성되어 있음
    • 엄밀한 의미에서는 3단계까지 모두 충족해야 REST API라고 부를 수 있음
    • 현실적으로는 2단계까지 충족해도 좋은 API 디자인이라고 할 수 있으며, 이를 HTTP API라고 부름


성숙도 단계


출처: Richardson Maturity Model

0단계

  • 단순히 HTTP 프로토콜을 사용하는 단계
  • REST API를 작성하기 위한 기본 단계

1단계

  • 개별 리소스와의 통신 준수
  • 모든 자원은 개별 리소스에 맞는(즉, 요청하는 리소스가 무엇이냐에 따라 서로 다른) 엔드포인트(Endpoint) 사용
    • 어떤 리소스를 변화시키는지 혹은 어떤 응답이 제공되는지에 따라 각기 다른 엔드포인트를 사용하기 때문에, 적절한 엔드포인트를 작성하는 것이 중요
    • 엔드포인트 작성 시에는 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직한 방법
  • 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 함
    • 요청에 따른 응답으로 리소스를 전달할 때에도 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공/실패 여부를 반환

2단계

  • CRUD(Create, Read, Update, Delete)에 맞게 적절한 HTTP 메서드를 사용하는 단계

HTTP 메서드 사용 규칙

CREAT

  • POST 메서드: 요청마다 새로운 리소스를 생성
  • cf. PUT 메서드: 요청마다 같은 리소스를 반환 -> 멱등(idempotent)하다고 표현함

READ

  • GET 메서드: 서버의 데이터를 변화시키지 않는 요청의 경우 사용

UPDATE

  • PUT 메서드: 기존 리소스와 교체하는 용도
  • cf.PATCH 메서드: 기존 리소스를 수정하는 용도

DELETE

  • DELETE 메서드 : 기존 리소스 삭제하기

3단계

  • 응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는 것
    • 응답에 리소스의 URI를 포함한 링크 요소를 삽입하여 작성
    • 링크 요소에는 응답을 받은 후 할 수 있는 다양한 액선을 위한 표현되는 하이퍼미디어 컨트롤을 포함
  • HATEOAS(Hypermedia As The Engine Of Application State) 원칙을 준수했다고 표현

0개의 댓글

관련 채용 정보