API 목록

비밀번호 변경하기

요청

Request

PATCH /members/change-password HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 75
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxODYiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.h-ZvvKZ4iCnFYIv-2pBtcjiC76xGB0uwQmvWE_Rnmfo
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxODYiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTIzMjg3MzN9.Rp7aYE2VLGLebdeXjwSZ3d5VxWnU63id8pMXRCJPy1o

{
  "oldPassword" : "oldPassword123!",
  "newPassword" : "password123!@#"
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN

refreshToken

REFRESH TOKEN

Request Fields

필드명 타입 필수값 양식 설명

oldPassword

String

true

현재 패스워드

newPassword

String

true

새로운 패스워드

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /members/me
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Response Headers

Name Description

Location

비밀번호 변경한 리소스의 위치입니다.

회원 목록 조회(검색)

요청

Request

GET /members/real-name HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxODUiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.p2ZlvDzPVSnXcKV2U4jgK58VY_4BiuVdwh6ObcViBHw

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Request Parameters

실명 기준으로 검색됩니다.
파라미터명 필수값 양식 설명

searchName

null : 전체 목록 조회

회원 이름 검색어

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 136

[ {
  "memberId" : 185,
  "realName" : "sYAQSlHFnD",
  "generation" : "15.0",
  "memberType" : "정회원",
  "thumbnailPath" : null
} ]

Response Fields

Path Type Description

[].memberId

Number

회원 ID

[].realName

String

회원 실명

[].generation

String

회원 기수

[].memberType

String

회원 타입

[].thumbnailPath

Null

회원 썸네일 주소

포인트 랭킹 조회

요청

Request

GET /members/point-rank?page=0&size=3 HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxODQiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.zH3cyKO9aOz6zJ2nMumFuEIGVXrruDg9AVsJR3cjBIg

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Request Parameters

파라미터명 필수값 양식 설명

page

페이지 (default: 0)

size

한 페이지당 불러올 개수 (default: 10)

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 869

{
  "content" : [ {
    "memberId" : 184,
    "realName" : "TFHSukNqmS",
    "generation" : "15.0",
    "point" : 2248,
    "thumbnailPath" : null
  }, {
    "memberId" : 183,
    "realName" : "BpFeDJPvWB",
    "generation" : "15.0",
    "point" : 100,
    "thumbnailPath" : null
  }, {
    "memberId" : 182,
    "realName" : "YGYlDbMzCY",
    "generation" : "15.0",
    "point" : 0,
    "thumbnailPath" : null
  } ],
  "pageable" : {
    "sort" : {
      "empty" : true,
      "sorted" : false,
      "unsorted" : true
    },
    "offset" : 0,
    "pageNumber" : 0,
    "pageSize" : 3,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 3,
  "first" : true,
  "size" : 3,
  "number" : 0,
  "sort" : {
    "empty" : true,
    "sorted" : false,
    "unsorted" : true
  },
  "numberOfElements" : 3,
  "empty" : false
}

Response Fields

Path Type Description

content[].memberId

Number

회원의 ID

content[].realName

String

회원의 실명

content[].generation

String

회원의 기수

content[].point

Number

회원의 포인트

content[].thumbnailPath

Null

회원의 썸네일 주소

empty

Boolean

가져오는 페이지가 비어 있는 지

first

Boolean

첫 페이지인지

last

Boolean

마지막 페이지인지

number

Number

페이지 number (0부터 시작)

numberOfElements

Number

현재 페이지의 데이터 개수

pageable

Object

페이지에 대한 부가 정보

sort.empty

Boolean

정렬 기준이 비어 있는 지

sort.sorted

Boolean

정렬이 되었는지

sort.unsorted

Boolean

정렬이 되지 않았는지

totalPages

Number

총 페이지 수

totalElements

Number

총 요소 수

size

Number

한 페이지당 데이터 개수

회원 팔로우

요청

Request

POST /members/181/follow HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxODAiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.AhKjgsX43DQFKkfLyvLbDutYH3t7F-QGM6s8PTJE04c
Content-Type: application/x-www-form-urlencoded

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Path Parameters

Table 1. /members/{memberId}/follow
Parameter Description

memberId

회원 ID

응답

Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

회원 언팔로우

요청

Request

DELETE /members/179/unfollow HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNzgiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.F8VijwvkMaoaXrgIsja1WEHlbOZt6B53nC7U7ufvgP8

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Path Parameters

Table 2. /members/{memberId}/unfollow
Parameter Description

memberId

회원 ID

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

회원 프로필 변경

요청

Request

PATCH /members/profile HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 62
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNzciLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.myt0SzOuWFez7ACXnCfrRQKjwr1_VO-nz61ozjV4W04

{
  "realName" : "바뀐이름",
  "birthday" : "1970.01.01"
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Request Fields

필드명 타입 필수값 양식 설명

realName

String

true

실명을 입력해주세요. (실명은 1~20자 한글, 영어만 가능합니다.)

birthday

String

생년월일을 입력해주세요.

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

회원 썸네일 변경

요청

Request

PATCH /members/thumbnail HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNzYiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.4kAvraCIwmXF8zpD-Fa1tftXHd9ZOW1zZsjWAKKShvM

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Request Parts

파트명 필수값 설명

thumbnail

true

변경할 썸네일

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

회원 프로필 조회

요청

Request

GET /members/170/profile HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNzAiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.McWJ0Ez0ItTEtGJHyUHCrAA2hSj2xHs3_xwTVLoUjmg

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Path Parameters

Table 3. /members/{memberId}/profile
Parameter Description

memberId

조회하고자 하는 회원의 ID값

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 711

{
  "id" : 170,
  "emailAddress" : "M1cJ8@fBUu2.com",
  "realName" : "lMnQXiBNHa",
  "birthday" : "1970-01-01",
  "thumbnailPath" : null,
  "studentId" : "589800205",
  "generation" : "15.0",
  "point" : 0,
  "memberType" : "정회원",
  "memberJobs" : [ "ROLE_회원" ],
  "follower" : [ {
    "id" : 174,
    "name" : "삼삼",
    "thumbnailPath" : null,
    "generation" : "15.0"
  }, {
    "id" : 175,
    "name" : "삼삼",
    "thumbnailPath" : null,
    "generation" : "15.0"
  } ],
  "followee" : [ {
    "id" : 172,
    "name" : "일일",
    "thumbnailPath" : null,
    "generation" : "15.0"
  }, {
    "id" : 173,
    "name" : "일일",
    "thumbnailPath" : null,
    "generation" : "15.0"
  } ]
}

Response Fields

Path Type Description

id

Number

Member PK ID

emailAddress

String

회원의 이메일 주소

realName

String

회원의 실명

birthday

String

회원의 생일

thumbnailPath

Null

썸네일 경로

studentId

String

회원의 학번(본인이 아닐경우 default)

generation

String

회원의 기수

point

Number

회원의 포인트 점수

memberType

String

회원의 타입

memberJobs

Array

회원의 역할

follower[].id

Number

나를 팔로우 하는 회원의 ID

follower[].name

String

나를 팔로우 하는 회원의 이름

follower[].thumbnailPath

Null

나를 팔로우 하는 회원의 썸네일 경로

follower[].generation

String

나를 팔로우 하는 회원의 기수

followee[].id

Number

내가 팔로우 하는 사람의 ID

followee[].name

String

내가 팔로우 하는 사람의 이름

followee[].thumbnailPath

Null

내가 팔로우 하는 사람의 썸네일 경로

followee[].generation

String

내가 팔로우 하는 사람의 기수

회원 타입 변경

요청

Request

PATCH /members/types/3 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNTciLCJyb2xlcyI6IlJPTEVf7ZqM7JuQLFJPTEVf7ZqM7J6lIiwiaWF0IjoxNzExMTE5MTMzLCJleHAiOjE3MTExMjI3MzN9.WeM8BEircfxAjWoOLk1OLh3QupsdZIWhuaD9YnUZ60w

{
  "memberIds" : [ 157, 158 ]
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

Path Parameters

Table 4. /members/types/{typeId}
Parameter Description

typeId

변경할 회원 타입

Request Fields

필드명 타입 필수값 양식 설명

memberIds

Array

true

하나 이상의 회원 ID

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

이메일 변경

요청

Request

PATCH /members/email HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 85
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNTMiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMyLCJleHAiOjE3MTExMjI3MzJ9.-3ejtLX6JU46fZ_Qj479xtJ0kI9uwgus8mtaOcLY0lU

{
  "email" : "test@test.com",
  "auth" : "authTest",
  "password" : "truePassword"
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Request Fields

필드명 타입 필수값 양식 설명

email

String

true

회원의 변경할 이메일

auth

String

true

이메일 인증 코드

password

String

true

비밀번호 검증

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

이메일 인증 코드 발송

요청

Request

POST /members/email-auth HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 31
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNTUiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMyLCJleHAiOjE3MTExMjI3MzJ9.mFaY2zOGgJmw0pkNuxy_FHmiixRwEIaWcqMlPqEfcHM

{
  "email" : "test@test.com"
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Request Fields

필드명 타입 필수값 양식 설명

email

String

true

인증 코드를 보낼 이메일 주소

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 28

{
  "expiredSeconds" : 300
}

회원 삭제

요청

Request

DELETE /members HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 36
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNDciLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTMxLCJleHAiOjE3MTExMjI3MzF9.UfjODMuOdCuvTPOKhYXF47-TRNJ222cnBekO1bXauWY

{
  "rawPassword" : "testPassword"
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Request Fields

필드명 타입 필수값 양식 설명

rawPassword

String

true

현재 비밀번호

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

관리자용 회원 삭제

요청

Request

DELETE /members/admin HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 27
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNTEiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQLFJPTEVf7ZqM7J6lIiwiaWF0IjoxNzExMTE5MTMyLCJleHAiOjE3MTExMjI3MzJ9.8c-9tz5UaR9KGxfB6VwGMLE1dnkgZekuqrJXb3ep-OQ

{
  "memberIds" : [ 151 ]
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

Path Parameters

Unresolved directive in member.adoc - include::/home/runner/work/Homepage-Back-R2/Homepage-Back-R2/build/generated-snippets/admin-delete-member/path-parameters.adoc[]

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY