• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

REST API 부분 수정 및 삭제 문의 드립니다.

20.11.21 16:22 작성 조회수 294

0

안녕하세요. 

REST API 개발 중 문의드릴게 있어서 글 올립니다. 

데이터 중 일부 수정, 일부 삭제를 원하는데요. 

백앤드에서 modelmapper를 사용해 null 값으로 넘어오는 속성에 대해서

PATCH일 경우는 아래와 같이 설정을 하여 null로 넘어오는 DTO 속성은 무시하여 entity의 값을 덮어쓰지 않게 하였고

modelMapper.getConfiguration().setSkipNullEnabled(true);

PUT일 경우는 아래와 같이 설정하여 null로 넘어오는 DTO 속성에 대해서 entity의 속성을 null로 덮어쓰게 하였습니다. 

modelMapper.getConfiguration().setSkipNullEnabled(false);

위와 같이 설정하면서 초기 데이터가 아래와 같을 때

GET /users/1

{

"name": "ajp", 

"age": 33

}

--------------

PUT /users/1

{

"name": "ajp2"

}

와 같이 REST API 요청 시 아래 결과가 되고 

GET /users/1

{

"name": "ajp2", 

"age": null

}

--------------

PATCH /users/1

{

"name": "ajp2"

}

와 같이 REST API 요청 시 아래 결과가 되도록 하였습니다. 

GET /users/1

{

"name": "ajp2", 

"age": 33

}

이게 제가 잘 설계한게 맞는건가요? 아니라면 혹시 데이터 중 일부는 수정하고 일부는 삭제하고 싶을 경우에 어떤식으로 설계하면 좋을까요? 현재 @RequestBody로 json 데이터를 DTO로 받고 있습니다. 

조언 부탁드립니다 감사합니다 :) 

답변 1

답변을 작성해보세요.

0

null을 막느냐 안막느냐 설정 때문에 부분 삭제랑 부분 수정하고 충돌하는 부분이 생기네요.

ModelMapper 설정은 그대로 두시고 일부 수정(PATCh) API 라면 본문에 들어온 모든 데이터로 수정을 하면 어떨까요.

그렇게 한다면 일부 삭제는 일부 수정으로 처리할 수도 있을것 같네요. 본문에 들어온 데이터에 null이나 기본값으로 설정하면 될테니까요.