우주먼지

💡 API 명세서 - 상담사 & 게시물 & 공지사항

상담사 & 게시물 & 공지사항 API 명세서

 

상담사 등록 (회원가입)

POST 상담사 회원가입
/api/counselors/new
상담사 등록 시 사용되는 엔드포인트입니다. 화면 정의서 기준 37번에서 사용됩니다.

Authorization에서 관리자 토큰을 사용하셔야 합니다.
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request POST 'localhost:8080/api/counselors/new' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzM5NjIzOTcsImV4cCI6MTY3Mzk2MzI5NywibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.oucRqNDLd8Aor7UR7zYyoxoDTGQBJsxQZjbOGbdvrjMeeU6sk6TrRCPVK9xf5ok6pyrY7TDlwpzz_UrvxzohoQ' \
--data-raw '{
    "profile" : "https://cdn.crowdpic.net/list-thumb/thumb_l_FD8184F80AF8D28615C9B97C1AE4D63.jpeg",
    "counselorName" : "오은영",
    "birth" : "1965-09-09",
    "graduated" : "고졸",
    "email" : "1010as@naver.com",
    "password" : "1q2w3e4r5%",
    "confirmPassword" : "1q2w3e4r5%",
    "career" : "경력",
    "introduce" : "소개"
}'
Example Response 401 UnAuthorized
{
  "errorCode": "A-001",
  "errorMessage": "토큰이 만료되었습니다."
}

 

상담사 로그인

POST 상담사 로그인
/api/counselors/login
상담사 로그인 시 사용하는 엔드포인트 입니다

 

ExampleRequest
curl --location --request POST 'localhost:8080/api/counselors/login' \
--data-raw '{
    "email" : "1010as@naver.com",
    "password" : "1q2w3e4r5!"
}'
Example Response 200 OK
{
  "errorCode": "A-010",
  "errorMessage": "잘못된 비밀번호 입니다."
}

 

상담사 조회 (상담사 마이페이지)

GET 상담사 마이페이지
/api/counselors/look-up/{counselor-id}
상담사 조회(마이페이지) 시 사용하는 엔드포인트입니다. 화면정의서 기준 28번 슬라이드에서 사용됩니다.

Authorization에 상담사 토큰값을 넣어야 합니다.
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request GET 'localhost:8080/api/counselors/look-up/1' \
--header 'Authorization;'
Example Response 401 UnAuthorized
{
  "errorCode": "A-003",
  "errorMessage": "Authorization Header가 빈값입니다."
}

 

상담사 전체 조회 (관리자 페이지)

GET 상담사 전체 조회
/api/counselors/total-look-up?size=10&page=1
관리자 페이지에서 상담사 전체 조회를 할 때 사용하는 엔드포인트입니다. 화면정의서 기준 34번 슬라이드에서 사용됩니다.

Authorization에 관리자 토큰값을 넣어줘야 합니다
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg
Params
size 10
page 1

 

ExampleRequest
curl --location --request GET 'localhost:8080/api/counselors/total-look-up?size=10&page=1' \
--header 'Authorization;'
Example Response 401 UnAuthorized
{
  "errorCode": "A-003",
  "errorMessage": "Authorization Header가 빈값입니다."
}

 

상담사 수정 (상담사 마이페이지)

PATCH 상담사 수정
/api/counselors/edit/{counselor-id}
상담사 마이페이지에서 정보를 수정할 때 사용되는 엔드포인트 입니다. 화면정의서 기준 28번 슬라이드에서 사용됩니다.

errorCode A-009는 newPassword와 confirmNewPassword가 일치하지 않을 때 발생
A-010은 password와 newPassword가 일치하지 않을 때 발생합니다
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request PATCH 'localhost:8080/api/counselors/edit/1' \
--header 'Authorization;' \
--data-raw '{
    "password" : "1q2w3e4r5%",
    "newPassword" : "1q2w3e4r5!",
    "confirmNewPassword" : "1q2w3e4r5!"
}'
Example Response 401 UnAuthorized
{
  "errorCode": "A-003",
  "errorMessage": "Authorization Header가 빈값입니다."
}

 

상담사 삭제

DELETE 상담사 삭제
/api/counselors/delete/{counselor-id}
상담사를 삭제하는 엔드포인트입니다. 화면 정의서 기준 37번 슬라이드에서 사용됩니다

관리자가 상담사 등록 페이지에서 삭제 또한 수행할 수 있습니다.

Authorization에서는 관리자 권한 토큰이 들어가야합니다.
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request DELETE 'localhost:8080/api/counselors/delete/1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzM5NzIyOTUsImV4cCI6MTY3Mzk3MzE5NSwibWVtYmVySWQiOjEsInJvbGUiOiJDT1VOU0VMT1IifQ.XL9Lq6jnw27S5Umcydt5RnZdIBAIFgLzcLDan1HU7vlFO7L6ek2rzUb0qnj0vjHxe75CJRr9ErCrO9k1kULUxg'
Example Response 204 No Content
No Response Body

 

게시글 생성

POST 게시글 생성
/api/posts/post
Post 요청을 하면 게시글에 멤버를 할당하는 로직 실행
화면정의서 ID - #com-02-02
글 생성 시 유저의 권한검증을 위한 토큰값 입력
Header -> Authorization
Authorization Type -> Bearer
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request POST 'http://43.200.39.48:8080/api/posts/post' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTI0MDMsImV4cCI6MTY3NDY1MzMwMywibWVtYmVySWQiOjgsInJvbGUiOiJVU0VSIn0.uiDxhN36W8k9WmicnxCSTUGjCOnVj1tUrJrKmwsatvHziff44rzG-vl986lPgp9GJm6nbbsh-_iAX5dliN5zqA' \
--data-raw '{
    "title" : "제목1",
    "content" : "내용1",
    "kinds" : "GENERAL"
}'
Example Response 201 Created
{
  "data": {
    "postId": 1,
    "title": "제목1",
    "content": "내용1",
    "kinds": "GENERAL",
    "views": 0,
    "writer": "정동규",
    "createdTime": "2023-01-25T22:22:56.853666"
  }
}

 

게시글 조회

GET 게시글 조회
/api/posts/lookup/{post-id}
게시글 조회 시 사용하는 엔드포인트 입니다

 

ExampleRequest
curl --location --request GET 'http://43.200.39.48:8080/api/posts/lookup/1'
Example Response 200 OK
{
  "data": {
    "postId": 1,
    "title": "제목",
    "content": "내용",
    "kinds": "GENERAL",
    "views": 1,
    "writer": "신건우",
    "createdTime": "2023-01-25T22:22:57"
  }
}

 

게시글 전체 조회

GET 게시글 전체 조회
/api/posts/lookup/list?page=1&size=10
게시글 전체조회 시 사용하는 엔드포인트 입니다
Params
page 1
size 10

 

ExampleRequest
curl --location --request GET 'http://43.200.39.48:8080/api/posts/lookup/list?page=1&size=10'
Example Response 200 OK
{
  "data": [
    {
      "postId": 1,
      "title": "제목1",
      "kinds": "GENERAL",
      "views": 0,
      "writer": "탈퇴한 회원",
      "createdTime": "2023-01-25T22:22:57"
    }
  ],
  "pageInfo": {
    "page": 1,
    "size": 10,
    "totalElements": 1,
    "totalPages": 1
  }
}

 

게시글 수정

PATCH 게시글 수정
/api/posts/patch/{post-id}
게시글 수정 시 사용하는 엔드포인트 입니다
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request PATCH 'http://43.200.39.48:8080/api/posts/patch/1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTI0MDMsImV4cCI6MTY3NDY1MzMwMywibWVtYmVySWQiOjgsInJvbGUiOiJVU0VSIn0.uiDxhN36W8k9WmicnxCSTUGjCOnVj1tUrJrKmwsatvHziff44rzG-vl986lPgp9GJm6nbbsh-_iAX5dliN5zqA' \
--data-raw '{
    "postId": 1,
    "title": "수정된 제목",
    "content": "수정된 내용",
    "kinds": "REVIEW"
}'
Example Response 200 OK
{
  "data": {
    "postId": 1,
    "title": "수정된 제목",
    "content": "수정된 내용",
    "kinds": "REVIEW",
    "views": 0,
    "writer": "정동규",
    "createdTime": "2023-01-25T22:22:57"
  }
}

 

게시글 삭제

DELETE 게시글 삭제
/api/posts/delete/{post-id}
게시글 삭제 시 사용하는 엔드포인트 입니다
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request DELETE 'http://43.200.39.48:8080/api/posts/delete/1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTI0MDMsImV4cCI6MTY3NDY1MzMwMywibWVtYmVySWQiOjgsInJvbGUiOiJVU0VSIn0.uiDxhN36W8k9WmicnxCSTUGjCOnVj1tUrJrKmwsatvHziff44rzG-vl986lPgp9GJm6nbbsh-_iAX5dliN5zqA'
Example Response 204 No Content
No Response Body

 

공지사항 생성

POST 공지사항 생성
/api/notices/post
Post 요청을 하면 공지사항에 멤버를 할당하는 로직 실행
유저의 Role(권한)이 Admin이 아닐 시 Exception 발생
화면정의서 ID - #com-01-02
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request POST 'http://43.200.39.48:8080/api/notices/post' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTM0NTMsImV4cCI6MTY3NDY1NDM1MywibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.wW7nNR328QnO73ZeX36iUBTROzWAhIIPH8YMBZhkv55xYoniw40F28QI7MRnyOy6MbeUwRI8fgXuwpZP_tFhNA' \
--data-raw '{
    "title": "제목",
    "content": "내용"
}'
Example Response 201 Created
{
  "data": {
    "noticeId": 1,
    "title": "제목",
    "content": "내용",
    "views": 0,
    "writer": "신건우",
    "createdTime": "2023-01-25T22:31:12.868551"
  }
}

 

공지사항 조회

GET 공지사항 조회
/api/notices/lookup/{notice-id}
공지사항 조회 시 사용하는 엔드포인트 입니다

 

ExampleRequest
curl --location --request GET 'http://43.200.39.48:8080/api/notices/lookup/1'
Example Response 200 OK
{
  "data": {
    "noticeId": 1,
    "title": "제목",
    "content": "내용",
    "views": 1,
    "writer": "신건우",
    "createdTime": "2023-01-25T22:31:13"
  }
}

 

공지사항 전체 조회

GET logout
/api/notices/lookup/list?page=1&size=10
로그아웃 시 사용하는 엔드포인트 입니다
params
page 1
size 10

 

ExampleRequest
curl --location --request GET 'http://43.200.39.48:8080/api/notices/lookup/list?page=1&size=10'
Example Response 200 OK
{
  "data": [
    {
      "noticeId": 1,
      "title": "제목",
      "views": 0,
      "writer": "정동규",
      "createdTime": "2023-01-25T22:31:13"
    }
  ],
  "pageInfo": {
    "page": 1,
    "size": 10,
    "totalElements": 1,
    "totalPages": 1
  }
}

 

공지사항 수정

PATCH 공지사항 수정
/api/notices/patch/{notice-id}
공지사항 수정 시 사용하는 엔드포인트 입니다
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request PATCH 'http://43.200.39.48:8080/api/notices/patch/1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTM0NTMsImV4cCI6MTY3NDY1NDM1MywibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.wW7nNR328QnO73ZeX36iUBTROzWAhIIPH8YMBZhkv55xYoniw40F28QI7MRnyOy6MbeUwRI8fgXuwpZP_tFhNA' \
--data-raw '{
    "noticeId": 1,
    "title": "수정된 제목",
    "content": "수정된 내용"
}'
Example Response 200 OK
{
  "data": {
    "noticeId": 1,
    "title": "수정된 제목",
    "content": "수정된 내용",
    "views": 0,
    "writer": "신건우",
    "createdTime": "2023-01-25T22:31:13"
  }
}

 

공지사항 삭제

DELETE 공지사항 삭제
/api/notices/delete/{notice-id}
공지사항 삭제 시 사용하는 엔드포인트 입니다
Header
Authorization Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTIzMTgsImV4cCI6MTY3NDY1MzIxOCwibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.icBFQbDz1dZQ7zFf2tvYvfWaRQwEaI1ZcB24wePwF31sBNxD31uWIi_1vP3RuT3Mxso1X4R9KGPfXndDIoHPSg

 

ExampleRequest
curl --location --request DELETE 'http://43.200.39.48:8080/api/notices/delete/1' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJBQ0NFU1MiLCJpYXQiOjE2NzQ2NTM0NTMsImV4cCI6MTY3NDY1NDM1MywibWVtYmVySWQiOjMsInJvbGUiOiJBRE1JTiJ9.wW7nNR328QnO73ZeX36iUBTROzWAhIIPH8YMBZhkv55xYoniw40F28QI7MRnyOy6MbeUwRI8fgXuwpZP_tFhNA'
Example Response 204 No Content
No Response Body

 

profile

우주먼지

@o귤o

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그