카카오콘
1k
2022-07-27 17:39:25 작성 2022-07-27 17:41:33 수정됨
2
128

RequestBody와 PathVariable 내 데이터를 중복으로 받는게 이상한가요?



회원정보를 수정하는 API를 만든다고 한다면


/user/{userId} (PUT)


형식으로 API를 구성하고 있습니다. 


회원정보를 수정하는 API니까 당연히 변경을 원하는 회원정보도 같이 받는데,

이 내용은 RequestBody의 객체로 받습니다.


저는 이 때 편의를 위해, 

이름과 비밀번호 변경을 원한다고 한다면 Body의 객체 안에 (DTO나 Entity)

userId,

userName,

password

3개를 모두 담아서 받고 있습니다.


로직상에는 아무 문제가 없는데, 이렇게 되면


PathVariable 로 받은 UserId 라는 데이터는 사실 API 분리에서 수명을 다하고

그 이후로는 아무데도 쓰이질 않거든요.


이런 구성으로 API를 만들어도 괜찮을지요?


0
  • 답변 2

  • 유도지
    192
    2022-07-27 17:44:34

    저도 비슷한 고민을 했었는데 userId는 pathvariable, 그 외 데이터는 requestbody로 받아서 userId 검증 후 하나의 dto로 모아서 업데이트하도록 하였습니다.

  • Mambo
    8k
    2022-07-27 19:23:10

    이상하지 않습니다.

    일반적으로 PathVariable은 권한 검증에 사용되는편이고 페이로드는 값에 대해서만 검증하게 되므로 페이로드의 값이 다르다면 검증된 값으로 대체하거나 예외처리를 별도로 해야하는건 필요하다 생각됩니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.