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

puchca3님의 프로필 이미지
puchca3

작성한 질문수

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

HTTP 메서드 - PUT, PATCH, DELETE

PUT, PATCH 리소스에 대해서

작성

·

235

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예

[질문 내용]
안녕하세요.
수업을 듣다가 PUT과 PATCH에서 리소스 판단 기준이 헷갈려서 질문드립니다.
만약 user 테이블이 있고 테이블에 컬럼이 user_id, user_name, user_pw, user_nickname 이 있습니다.
그리고 form 태그를 통해서 회원정보 수정을 하려고 할 때, user_pw와 user_nickname만 수정할 수 있게 두 컬럼에 대해서만 input 태그가 있습니다. input 태그에는 초기값으로 원래의 값이 들어가 있습니다.

이 때, 사용자가 둘 중에 어느 것을 바꾸든 form 태그에 있는 전체 데이터를 보낸다고 할 때(바꾸지 않은 값은 초기값으로 보내집니다), 리소스를 user_pw, user_nickname으로만 보고 두 정보를 다 교체하니 PUT으로 봐야할까요? 아니면 리소스를 user 테이블 전체로 보고 user 테이블 중에 두 컬럼만 바꾸니 PATCH로 하는 게 맞을까요??

답변 1

0

안녕하세요. puchca3님, 공식 서포터즈 코즈위버입니다.

만약, 수정요청하지 않은 리소스는 null로 처리된다면 PUT, 수정요청한 데이터만 처리된다면 PATCH가 원래 HTTP 메서드 설계 취지에 맞습니다.

그러나 HTTP 메서드의 원래 의미보다는 이용하고자 하는 API에서 어떤 메서드를 어떤 규칙으로 사용하고 있는가를 살펴보셔야 안전합니다. HTTP 메서드의 원래 의미를 잘 살려 사용하는 경우가 매우 드뭅니다.

보통 데이터를 조회하는 것은 GET, 리소스 생성,수정은 POST로 퉁쳐서(?) 사용하기도 하니 문서를 먼저 살펴보셔야 합니다.

감사합니다.

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

답변 감사합니다.
그런데 그러면 input 태그가 user 테이블의 일부 컬럼에 대해서만 존재할 때, PUT 메소드로 요청한다면 input 태그에 존재하지 않는 user 테이블의 다른 컬럼들을 null로 처리되어야 하는 건가요?

puchca3님의 프로필 이미지
puchca3

작성한 질문수

질문하기