1. 💡 API 명세서 - 상담사 & 게시물 & 공지사항
상담사 & 게시물 & 공지사항 API 명세서
1.1. 상담사 등록 (회원가입)
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": "토큰이 만료되었습니다." } |
1.2. 상담사 로그인
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": "잘못된 비밀번호 입니다." } |
1.3. 상담사 조회 (상담사 마이페이지)
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가 빈값입니다." } |
1.4. 상담사 전체 조회 (관리자 페이지)
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가 빈값입니다." } |
1.5. 상담사 수정 (상담사 마이페이지)
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가 빈값입니다." } |
1.6. 상담사 삭제
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 |
1.7. 게시글 생성
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" } } |
1.8. 게시글 조회
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" } } |
1.9. 게시글 전체 조회
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 } } |
1.10. 게시글 수정
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" } } |
1.11. 게시글 삭제
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 |
1.12. 공지사항 생성
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" } } |
1.13. 공지사항 조회
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" } } |
1.14. 공지사항 전체 조회
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 } } |
1.15. 공지사항 수정
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" } } |
1.16. 공지사항 삭제
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 |
'Project > Main Project' 카테고리의 다른 글
💻 기능 개발 - 회원 (0) | 2023.01.26 |
---|---|
📄 API 명세서 - 상담프로그램 & 결제 & 예약 (0) | 2023.01.26 |
📄 API 명세서 - 사용자 & 로그인 & 로그아웃 (0) | 2023.01.26 |
📄 ERD 설계 & 테이블 명세서 (0) | 2023.01.10 |
📄 사용자 요구사항 정의서 & 커밋 컨벤션 (2) | 2023.01.06 |