Skip to content

09. User API

tax1116 edited this page Oct 20, 2020 · 1 revision

User API에 대한 설명을 작성하는 공간입니다.

1. 회원가입하기
2. 중복확인하기
3. 로그인 하기
4. 로그아웃 하기
5. 프로필 수정하기
6. 패스워드 변경하기
7. 프로필 조회하기
8. 회원 탈퇴하기

회원가입하기

AGORA 어플리케이션에 회원가입을 하는 API입니다.

필수 파라미터 값들을 담아서 POST로 요청합니다. 응답은 HttpStatus 객체가 제공됩니다.

📌 화면

join

📌 Request

✅ URL

POST /users
Host: localhost:8080

✅ Parameter

Name Type Description Required
userId String 사용자 Id로써, 영문 소문자와 숫자의 조합으로 6~20자 이내로 작성해야만 합니다. O
password String 비밀번호는 영문 대소문자, 숫자, 특수문자를 각 1개씩 포함해야만 합니다.(8~12자 이내, 사용 가능한 특수문자: ~!@#$%^&*()_+) O
email String 이메일을 입력합니다. O
name String 사용자 이름을 입력합니다. O
nickname String 사용자 별칭을 입력합니다. O
birth Date 생년월일을 입력합니다. X

✅ Example

{
    "userId":"test111",
    "password":"Test1234@@",
    "email":"test1@gmail.com",
    "name":"test1",
    "nickname":"hooligan",
    "birth":"2020-01-01"
}

📌 Response

  • HttpStatus 201 CREATED

중복확인 하기

회원가입 시에 Database 내에 해당 Id가 존재하는지 여부를 확인하는 API입니다.

userId를 Requset Parameter에 담아서 GET으로 요청합니다. 응답은 HttpStatus 객체가 반환됩니다.

📌 Request

✅ URL

GET /users/?userId={userId}
Host: localhost:8080

✅ Parameter

Name Type Description Required
userId String 중복확인을 위한 사용자 Id값 O

✅ Example

GET /users?userId=test123

📌 Response

  • 성공: HttpStatus 200 OK
  • 실패: HttpStatus 409 CONFLICT

로그인 하기

사용자 인증을 하는 API입니다.

userId와 password를 에 담아서 POST로 요청합니다. 응답은 HttpStatus 객체가 반환됩니다.

📌 화면

login

📌 Request

✅ URL

POST /users/login
Host: localhost:8080

✅ Parameter

Name Type Description Required
userId String Login 하고자 하는 User의 Id를 입력합니다. O
password String Id에 대응하는 Password를 입력합니다. O

✅ Example

{
    "userId":"test111",
    "password":"Test1234@@",
}

📌 Response

  • 성공: HttpStatus 200 OK
  • 실패: HttpStatus 400 Bad_REQUEST

로그아웃 하기

인증된 사용자의 세션 객체를 무효화하는 API입니다.

별도의 파라미터가 존재하지 않으며 POST로 요청합니다. 응답은 HttpStatus 객체가 반환됩니다.

📌 Request

✅ URL

POST /users/logout
Host: localhost:8080

📌 Response

  • 성공: HttpStatus 204 NO_CONTENT

프로필 수정하기

등록된 User의 프로필 정보를 수정하는 API입니다.

User Profile에 업데이트할 내용을 RequestBody에 담아서 PUT으로 요청합니다. 응답은 HttpStatus 객체가 반환됩니다.

📌 화면

profile_update

📌 Request

✅ URL

PUT /users/account
Host: localhost:8080

✅ Parameter

Name Type Description Required
file MultipartFile 프로필 사진을 등록할 파일을 입력합니다. X
nickname String 수정할 nickname을 입력합니다. X
email String 수정할 email을 입력합니다. X
birth date 수정할 생년월일을 입력합니다. X

📌 Response

  • 성공: HttpStatus 200 OK

패스워드 변경하기

등록된 User의 패스워드를 수정하는 API입니다.

User Profile에 업데이트할 내용을 RequestBody에 담아서 PUT으로 요청합니다. 응답은 HttpStatus 객체가 반환됩니다.

📌 화면

password_update

📌 Request

✅ URL

PUT /users/account/password
Host: localhost:8080

✅ Parameter

Name Type Description Required
currentPassword String 올바른 User인지 확인을 위한 password를 입력합니다. O
newPassword String 수정할 password를 입력합니다. 비밀번호는 영문 대소문자, 숫자, 특수문자를 각 1개씩 포함해야만 합니다.(8~12자 이내, 사용 가능한 특수문자: ~!@#$%^&*()_+) O

✅ Example

{
    "currentPassword":"Test1234@@",
    "newPassword":"Test1234!!"
}

📌 Response

  • 성공: HttpStatus 200 OK

프로필 조회하기

타깃 User의 프로필을 조회하는 API입니다.

타깃 유저의 Id를 PathVariable로 받아서 GET으로 요청합니다. 응답은 HttpStatus 객체와 UserProfile 객체가 반환됩니다. Profile에 이미지 첨부는 추가 작업 예정입니다.

📌 화면

profile_page

📌 Request

✅ URL

GET /users/{targetId}
Host: localhost:8080

✅ Parameter

Name Type Description Required
targetId String 조회하고자 하는 User의 Id를 입력합니다. O

✅ Example

GET http://localhost:8080/users/test123

📌 Response

  • 성공: HttpStatus 200 OK
Name Type Description
userId String User가 가입한 Id를 나타냅니다.
nickname String User가 지정한 nickname을 의미합니다.
email String User가 지정한 email 정보를 의미합니다.
birth Date User의 생년월일 정보를 의미합니다.
filePath String 프로필 사진이 저장되어 있는 경로를 나타냅니다.
fileName String 프로필 사진의 파일명을 나타냅니다.

✅ Example

{
    "id":"1",
    "nickname":"test1",
    "email":"test1@gmail.com",
    "birth":"2020-01-01",
    "filePath":"test111/0000000",
    "fileName":"hello.png"
}

회원 탈퇴하기

사용자 탈퇴를 처리하는 API입니다.

password 인증을 하고 회원 탈퇴를 진행해야 하기 때문에 password를 RequestBody로 받아서 DELETE로 요청합니다. 응답은 HttpStatus 객체가 반환됩니다.

📌 화면

setting

📌 Request

✅ URL

DELETE /users/account
Host: localhost:8080

✅ Parameter

Name Type Description Required
password String 비밀번호 인증을 위한 password를 입력합니다. O

✅ Example

{
    "password":"Test1234@@"
}

📌 Response

  • 성공: HttpStatus 204 NO_CONTENT
  • 실패: HttpStatus 400 BAD_REQUEST
Clone this wiki locally