Skip to content

[ Auth ] 사용자 API 계약 정리 (가입 전용 DTO, /users 구 경로 제거) #91

Description

@RosieOh

💚 어떤 기능인가요?

#80 에서 의도적으로 미룬 API 계약 정리 두 건이다. 동작에는 문제가 없고 계약이 지저분한 상태다.

1. 가입 요청 전용 DTO 분리

POST /auth/register 가 응답 DTO 인 UserDto 를 그대로 요청 본문으로 받는다.
role / provider / providerId / isActive / emailVerified / id / deletedAt
클라이언트가 정해서는 안 되는 필드가 전부 노출된다.

값이 무시된다는 사실은 UserService.createUser 가 보장하지만(#82),
Swagger 문서에는 여전히 설정 가능한 것처럼 보인다. 읽는 사람이 오해하기 쉽고,
"무시되니까 괜찮다"는 전제가 언젠가 깨진다.

  • SignUpRequest 를 만들어 등록 가능한 필드만 노출
  • 프런트 계약 영향 확인 후 적용

2. /users 구 경로 제거

#83 에서 호환을 위해 남겨둔 경로들이다. 본인 확인은 들어가 있으나 형태가 오해를 부른다
(경로에 남의 ID 를 넣을 수 있는 것처럼 보인다).

구 경로대체
PUT /users/{userId}/locationPUT /users/me/location
PUT /users/{userId}/profile-imagePUT /users/me/profile-image
PUT /users/{userId}/deactivatePUT /users/me/deactivate
DELETE /users/{userId}DELETE /users/me

프런트에서 실제로 쓰는 것은 /users/{userId}/location 하나다.

  • 프런트를 /users/me/* 로 전환
  • 전환 확인 후 구 경로 제거
  • 접근제어 계약 테스트에서 해당 경로가 404 인지 확인

✅ To Dos

  • 가입 요청 전용 DTO 분리
  • 프런트 /users/me/* 전환
  • /users/{userId}/* 구 경로 제거

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions