-
Notifications
You must be signed in to change notification settings - Fork 5
API 명세
강성준 edited this page Nov 24, 2022
·
30 revisions
- 소셜 로그인
-
GET
/user/login?social=${'naver' | 'kakao' | 'google'}
로 해당 페이지로 이동 후 인증 진행. - Redirection 문제 때문에
axios
가 아닌anchor
태그 사용 권장. - 쿠키에
accessToken
식으로 jwt 토큰 생성. - DB 확인 후 미가입자 인 경우 signup 페이지로 이동.
-
jwt payload 확인 및 재생성
-
POST
/user
로 signupData 객체 전송 필수,
{ signupData : { nickname : string characterName : string } }
- 성공 (200)
"회원가입 완료!!"
- 실패
{ // body 형식 오류 "statusCode": 400, "message": [ "특수문자는 불가합니다.", "nickname must be shorter than or equal to 12 characters", "nickname must be longer than or equal to 4 characters", "nickname must be a string", "nickname should not be empty", "characterName must be a string", "characterName should not be empty" ], "error": "Bad Request" }
{ // 토큰이 없는 경우 "statusCode": 401, "message": "Unauthorized" }
{ //닉네임이 중복되는 경우 "statusCode": 406, "message": "닉네임이 중복됩니다.", "error": "Not Acceptable" }
-
-
GET
/user/logout
요청 시 AccessToken 만료.-
GET
/user/logout
- 성공 (200)
"로그아웃 되었습니다."
-
-
DELETE
/user
로 요청 시 Guards 로 토큰 인증 확인. -
토큰이 인증되었다면, DB에서 해당 유저 제거.
-
DELETE
/user
- 성공 (200)
"캐릭터가 삭제 되었습니다."
-
-
GET
/user/auth
로 요청 시 Guards 로 토큰 인증 확인.-
DELETE
/user
-
nickname
과characterName
반환 - 성공 (200)
{ "nickname": "stouter", "characterName": "cat" }
- 실패
{ "statusCode": 401, "message": "Unauthorized" }
-
-
**signup
API 와 동일** -
jwt payload 확인 및 재생성
-
POST
/user
로 signupData 객체 전송 필수,
{ signupData : { nickname : string characterName : string } }
- 성공 (200)
"회원가입 완료!!"
- 실패 (400)
{ "statusCode": 400, "message": [ "특수문자는 불가합니다.", "nickname must be shorter than or equal to 12 characters", "nickname must be longer than or equal to 4 characters", "nickname must be a string", "nickname should not be empty", "characterName must be a string", "characterName should not be empty" ], "error": "Bad Request" }
-
-
내가 팔로잉 중인 사람들의 목록 반환.
-
GET
/friendship
- 성공 (200)
[ // 팔로잉 2명 { "nickname": "hungjin", "characterName": "lion" }, { "nickname": "hj", "characterName": "lion" } ]
[]// 팔로잉 0명
-
-
PUT
/friendship/{상대닉네임}
으로 요청-
PUT
/friendship/{상대닉네임}
- 성공 (200)
"팔로우 성공"
- 실패 (404)
{ "statusCode": 404, "message": "이미 팔로우한 유저입니다.", "error": "Not Found" }
-
-
DELETE
/friendship/{상대닉네임}
으로 요청-
DELETE
/friendship/{상대닉네임}
- 성공 (200)
"팔로우 성공"
- 실패 (404)
{ "statusCode": 404, "message": "팔로우 취소 실패", "error": "Not Found" }
-
-
내가 Following 한 유저들의 게시글만 불러오기. (최신순)
-
GET
/board
로 요청
- 성공 (200)
[ { "id": 2, "nickname": "stouter", "content": "너무 좋아요", "category": "fishing", "created_at": "2022-11-23T13:57:44.356Z" }, { "id": 1, "nickname": "stouter", "content": "너무 좋아요", "category": "lifencut", "created_at": "2022-11-23T13:49:51.475Z" } ]
[] // 팔로잉 유저 없음 || 팔로잉 유저들 게시글 없음
-
-
게임 혹은 서비스 중 공유하기 버튼으로 요청
-
POST
/board
로articleData
와 함께 요청
{ articleData : { content : string, category : string // ("fishing" | "lifencut") } }
- 성공 (200)
"글 작성 성공"
- 실패 (400)
{ "statusCode": 400, "message": [ "content must be shorter than or equal to 36 characters", "content must be a string", "content should not be empty", "category must be shorter than or equal to 36 characters", "category must be a string", "category should not be empty" ], "error": "Bad Request" }
-
-
내가 작성한 글만 삭제 가능
-
DELETE
/board/{articleId}
- 성공 (200)
// 내 게시글일 때 "삭제처리 되었습니다."
- 실패 (401)
{ // 내 게시글이 아닐 때, "statusCode": 401, "message": "삭제 권한이 없습니다.", "error": "Unauthorized" }
-
-
게시글에 좋아요 버튼으로 API 요청
-
PUT
/board/like/{articleId}
- 성공 (200)
"좋아요 성공"
- 실패
// 이미 좋아요 눌렀을 때, { "statusCode": 406, "message": "이미 좋아요를 누르셨습니다.", "error": "Not Acceptable" }
// 없는 게시글을 좋아요 눌렀을 때, { "statusCode": 404, "message": "해당하는 게시글이 없습니다.", "error": "Not Found" }
-
-
게시글에 좋아요 해체 버튼으로 API 요청
-
DELETE
/board/like/{articleId}
- 성공 (200)
"좋아요 취소 성공"
- 실패
// 이미 좋아요 눌렀을 때, 없는 게시글의 좋아요를 취소할 때 { "statusCode": 406, "message": "이미 처리되었습니다.", "error": "Not Acceptable" }
-
- [PATCH] 캐릭터 변경
- [PATCH] 닉네임 변경
- [GET] 친구 목록 조회
- [DELETE] 친구 삭제