modifyMember(@Validated @ModelAttribute WebMemberModifyRequestDto dto, @PathVariable("memberSeq") long memberSeq) { try { return new ResponseEntity<>(memberModifyService.modifyMember(memberSeq, dto.convertToServiceDto()), HttpStatus.OK); } catch (IllegalArgumentException e) { return new ResponseEntity<>("요청 값을 다시 확인해주세요.", HttpStatus.BAD_REQUEST); } catch (NotMatchMemberException e) { return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST); } } "> modifyMember(@Validated @ModelAttribute WebMemberModifyRequestDto dto, @PathVariable("memberSeq") long memberSeq) { try { return new ResponseEntity<>(memberModifyService.modifyMember(memberSeq, dto.convertToServiceDto()), HttpStatus.OK); } catch (IllegalArgumentException e) { return new ResponseEntity<>("요청 값을 다시 확인해주세요.", HttpStatus.BAD_REQUEST); } catch (NotMatchMemberException e) { return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST); } } "> modifyMember(@Validated @ModelAttribute WebMemberModifyRequestDto dto, @PathVariable("memberSeq") long memberSeq) { try { return new ResponseEntity<>(memberModifyService.modifyMember(memberSeq, dto.convertToServiceDto()), HttpStatus.OK); } catch (IllegalArgumentException e) { return new ResponseEntity<>("요청 값을 다시 확인해주세요.", HttpStatus.BAD_REQUEST); } catch (NotMatchMemberException e) { return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST); } } ">
@PutMapping("/{memberSeq}") public ResponseEntity<?> modifyMember(@Validated @ModelAttribute WebMemberModifyRequestDto dto, @PathVariable("memberSeq") long memberSeq) {
try {
return new ResponseEntity<>(memberModifyService.modifyMember(memberSeq, dto.convertToServiceDto()), HttpStatus.OK);
} catch (IllegalArgumentException e) {
return new ResponseEntity<>("요청 값을 다시 확인해주세요.", HttpStatus.BAD_REQUEST);
} catch (NotMatchMemberException e) {
return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST);
}
}
// 멤버 정보 수정
@Multipart
@PUT("members/{memberSeq}")
suspend fun memberModify(
@Path("memberSeq") memberSeq: Long,
@Query("nickname") nickname: String,
@Part image: MultipartBody.Part?,
@Part background: MultipartBody.Part?,
@Query("profileMessage") profileMessage: String?
): Response<Boolean>
image와 background 둘다 null을 넣고 API 호출 시
“Multipart body must have at least one part” 라는 오류 발생
null을 하나 보내는 것은 되지만 두 개를 보낼때 해당 문제 발생
// 멤버 정보 수정
@Multipart
@PUT("members/{memberSeq}")
suspend fun memberModify(
@Path("memberSeq") memberSeq: Long,
@Query("nickname") nickname: String,
@Part image: MultipartBody.Part?,
@Query("profileMessage") profileMessage: String?
): Response<Boolean>
// 멤버 정보 수정
@PUT("members/{memberSeq}")
suspend fun memberModify(
@Path("memberSeq") memberSeq: Long,
@Query("nickname") nickname: String,
@Query("profileMessage") profileMessage: String?
): Response<Boolean>
background 부분을 지우고 API를 호출하면 Json 값이기 때문에 background가 안들어와있을 때 알아서 null로 처리하고 매핑되는 것으로 확인
이미지 둘다 없는 경우도 따로 만들어주어 처리