인프런 커뮤니티 질문&답변

suhani93님의 프로필 이미지

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메서드 - GET, POST

POST /orders/{orderId}/start-delivery 질문있습니다.

작성

·

499

14

배달의 경우 여러가지 상태값[배달전, 배달 시작, 배달 끝]이 있을거 같은데 배달 상태의 변경의 의미가 있는 PATCH
/orders/{orderId}/delivery/{배달 상태값} 같은 식으로 url을 만들어야 하는거 아닌가요??

답변 3

11

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. suhani93님

배달의 상태를 변경하다는 것은 단순히 해당 리소스의 값을 변경하는 정도로 끝나는게, 아니라 내부에서 매우 큰 프로세스가 실행됩니다.

이렇게 해당 리소스만 변경하는게 아니라 내부 프로세스를 실행해야 할 때는 PATCH 보다는 POST를 사용하는 것이 좋습니다.

단순히 회원 정보를 변경하는 것 처럼 특정 리소스의 데이터를 변경할 때 PATCH를 사용하는 것이 좋습니다.

추가로

POST /orders/{orderId}/delivery/{배달 상태값} 같은 방식으로 설계하기가 좀 애매한 점이 실무에서는 배달 상태값을 단순히 바꾸는게 아니라 배달 상태에 따른 전달 데이터가 각각 다를 확율이 매우 높습니다. 예를 들어서 배달에서 전달하는 데이터와 취소에서 전달하는 데이터가 매우 다르겠지요.

따라서 다음과 같이 다르게 정의되는게 더 나은 설계일 수 있습니다.

POST /orders/{orderId}/delivery/배달

{데이터A, 데이터B, 데이터C}

POST /orders/{orderId}/delivery/취소

{데이터D,데이터E}

감사합니다.

4

저도 같은 궁금증을 가지면서 보고있었는데 궁금증이 해결되었습니다 감사합니다.

2

suhani93님의 프로필 이미지
suhani93
질문자

많은 도움이 되었습니다.
답변 감사합니다.

suhani93님의 프로필 이미지

작성한 질문수

질문하기