REST API

박재현·2022년 1월 27일
0
post-custom-banner

💡 REST API란?

  • Representational State Transfer 의 약자
  • 구성 방식
    ✓ 자원(Resource): URI
    ✓ 행위(Verb): HTTP Method
    ✓ 표현(Representations)

REST는 URI를 통해 자원을 표시하고, HTTP Method를 이용하여 해당 자원의 행위를 규정하여
그 결과를 받는 것을 말한다.

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


HTTP Method는 크게 GET, POST, PUT, DELETE가 대표적이며,

보통 CRUD에서 조회는 GET, 등록은 POST, 수정은 PUT, 삭제는 DELETE를 이용한다.

GET과 DELETE는 비교적 그 행위가 명확하지만, POST와 PUT을 구분하기 위해서는 멱등성의 개념을 알고 있어야 함.

💡 멱등성(Idempotence)이란?

  • 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 '멱등성을 가졌다' 라고 말한다.
  • HTTP 메소드를 예를 들자면, GET, PUT, DELETE는 같은 경로로 여러 번 호출해도 결과가 같다.
    그러나 POST는 매 호출마다 새로운 데이터가 추가된다.
    따라서, POST 연산은 결과가 Idempotent하지 않지만, PUT은 반복 수행해도 그 결과가 Idempotent 하다.

PUT vs PATCH

  • PUT, PATCH 의 경우 둘 다 데이터를 수정한다는 공통점을 가짐

  • 하지만 차이점이 있다면

    ✓ PUT : 리소스의 모든 것을 업데이트 해야 함

    PUT 요청 시 요청을 일부분만 보낸 경우 나머지는 default 값으로 수정되는 게 원칙이므로, 바뀌지 않는 속성도 모두 보내야 한다.
    (만약 전체가 아닌 일부만 전달할 경우, 전달한 필드외 모두 null 혹은 default 값처리되니 주의해야한다.)

    ✓ PATCH : 리소스의 일부를 업데이트 함

    PATCH 요청의 경우 업데이트가 필요한 해당 데이터만 보내주면 그 값만 변경이 가능 하다.

ex)

  • 아래와 같은 데이터 존재
  1. PUT
  • PUT/members/1

{

name : "홍길동",

age : 19,

gender : "M"

}

다음과 같이 변경


이번에는 나이와 성별을 빼고 요청

  • PUT /members/1

{

name : "김길순"

}

보내지 않은 값은 null 값으로 변함

  1. PATCH
  • PATCH /members/1

{

name : "김길순"

}

기존 데이터는 유지되고 보내준 값만 변경

post-custom-banner

0개의 댓글