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

jung님의 프로필 이미지
jung

작성한 질문수

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

HTTP API 설계 예시

post 관련 질문드립니다.

작성

·

135

0

안녕하세요! 항상 좋은 강의 감사드립니다 ^^

post 와 put 신규등록을 하는 경우가 헷갈리는데요

클라이언트가 등록될 리소스의 uri를 모르는 상황이라고 설명해주셨는데 예를들어 회원을 가입할 때 회원 id는 유니크 해야되고  사용자가 회원 id를 입력을 합니다 ( ex: testid)

클라이언트는 본인이 입력한 id이기 때문에 알고  있습니다.

/member/testid

그리고 거꾸로 파일을 등록할땐 (ex : test.jpg)를 등록하면 서버에는 동일한 파일명이 존재할 수 있으니 식별자를 알 수 없고등록후에 test.jpg와 매핑된 아이디를 전달받아야 됩니다. 이런 상황이라면  예시와  똑같은 업무지만 post와 put 을 거꾸로 적용하면 될까요?

답변 1

0

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

안녕하세요. jung님

이 부분에서는 2가지 기준을 가지고 판단을 해야 합니다.

1. 리소스를 식별할 수 있는 기준을 클라이언트(PUT)가 가지고 있는가 서버(POST)가 가지고 있는가

2. 리소스를 변경할 때 클라이언트가 해당 리소스의 모든 데이터를 다 보낼 수 있는가(PUT)

예시로 들어주신 member의 경우 1번은 맞지만, 2번에서 (실제 수정하는 상황을 떠올려 보면)애매합니다. 따라서 POST를 사용하는 것이 더 나은 선택이라 생각합니다.

예시로 들어주신 파일의 경우 식별자를 서버에서 만들기 때문에 1번에서 기준이 애매하므로 POST를 사용하시면 됩니다.

1번만 생각해보면 PUT을 사용해도 될 것 같지만, 2번 때문에 실제 프로젝트에서 PUT을 사용하는 일은 매우 적고, 대부분 POST로 진행하게 됩니다.

(파일 업로드를 하면서 클라이언트가 지정한 파일명을 기준으로 리소스 URI가 생성된다면 PUT이 적합합니다.)

감사합니다.

jung님의 프로필 이미지
jung

작성한 질문수

질문하기