ABCDEF
1
기능메소드URIRequestResponseResponse(error)
2
로그인POST/login{
"loginId": "user1234",
"password": "pw1234"
}
200 / 로그인 성공
{
"message": "로그인 되었습니다.",
"accessToken": "eyJhbGciO.......",
"refreshToken": "eyJhbGciO.......",
"locals.user" : id
}
(토큰 쿠키 등록)
412 / 가입되지 않은 아이디
{ "errorMessage": "가입되어있지 않은 계정입니다." }

412 / 패스워드 불일치
{ "errorMessage": "비밀번호가 일치하지 않습니다." }
3
로그아웃POST/logout200 / 로그아웃 성공
{ "message": "로그아웃 되었습니다." }
메인페이지 또는 로그인페이지로 리다이렉션
(쿠키 삭제)
4
회원가입POST/join{
"id": "user1234",
"password": "pw1234",
"nickname": "고랑",
"email": "example@gmail.com"
}
201 / 회원가입 성공
{ "message":"가입 되었습니다." }
로그인 페이지로 리다이렉션
412 / 이메일 형식 비정상
{ "errorMessage": "이메일 형식이 일치하지 않습니다." }

412 / 패스워드 형식 비정상
{ "errorMessage": "패스워드 형식이 일치하지 않습니다." }
5
아이디 중복 체크GET/users/check/id{ "id": "user1234" }200 / 중복 아이디 없음
{ "message": "사용가능한 아이디입니다." }
return True
409 / 아이디 중복
{ "errorMessage": "이미 가입된 아이디입니다." }
6
이메일 중복 체크GET/users/check/email{ "email": "example@gmail.com" }200 / 중복 이메일 없음
{ "message": "사용가능한 이메일입니다." }
return True
409 / 이메일 중복
{ "errorMessage": "이미 가입된 이메일입니다." }
7
닉네임 중복 체크GET/users/check/nickname{ "nickname": "고랑" }200 / 중복 닉네임 없음
{ "message": "사용가능한 닉네임입니다." }
return True
409 / 닉네임 중복
{ "errorMessage": "이미 가입된 닉네임입니다." }
8
마이페이지(조회)GET/users/info/:id{ "id": res.locals.user }200 / 정보 조회 성공
{
"id": "user1234",
"nickname": "고랑",
"email": "example@naver.com",
"introduction": "내 소개",
"image": "image/image.png"
}
401 / 로그인 되어있지 않을때
{ "errorMessage": "로그인 해주세요." }
[로그인 페이지로 리다이렉션]
9
마이페이지(수정)PATCH/users/info/:id수정될 데이터만 보냄
{
"id": res.locals.user,
"password": "pw1234",
"nickname": "고랑",
"email": "example@naver.com",
"introduction": "내 소개",
"image": "image/image.png"
}
201 / 정보 수정 성공
{ "message":"정보 수정이 완료되었습니다." }
401 / 로그인 되어있지 않을때
{ "errorMessage": "로그인 해주세요." }
[로그인 페이지로 리다이렉션]
10
이메일 인증POST/users/email/:id{
"id": res.locals.user,
"email": "example@naver.com"
}
201 / 이메일 발송 성공
{
"message": "이메일 인증번호가 전송되었습니다.",
"verifiedCode": "CODE123"
}
401 / 로그인 되어있지 않을때
{ "errorMessage": "로그인 해주세요." }
[로그인 페이지로 리다이렉션]
11
이메일 인증코드 확인POST
/users/email-code-check/:id
{
"id": res.locals.user,
"verifiedCode": "CODE123"
}
200 / 이메일 인증 성공
{
"message": "이메일 인증이 완료되었습니다."
}
401 / 로그인 되어있지 않을때
{ "errorMessage": "로그인 해주세요." }
[로그인 페이지로 리다이렉션]

412 / 인증코드가 맞지 않을때
{ "errorMessage": "인증코드가 일치하지 않습니다." }
12
단축주소 페이지GET/shorts200 / 단축주소 조회 성공
{
"shortsData": [{originalUrl, shortUrl},...],
}
최근 10(?)개만 가져옴
13
단축주소(생성)POST/shorts{ "url": "https://naver.com" }{
"message": "단축이 완료되었습니다.",
"originalUrl": "https://naver.com",
"shortUrl": "https://url.kr/sturl"
}
412 / URL 형식 비정상
{ "errorMessage": "URL 형식이 안맞습니다." }
14
단축주소(조회/유저)GETusers 테이블의 id
/shorts/users/:id
{
"id": res.locals.user,
"offset": 1,
}
200 / 정상 조회
{
"shortsData": [{id, originalUrl, shortUrl},...],
}
생성한 데이터들 페이지네이션
401 / 로그인 되어있지 않을때
{ "errorMessage": "로그인 해주세요." }
[로그인 페이지로 리다이렉션]
15
단축주소(조회/단일)GETshortUrl 테이블의 id
/shorts/list/:id
{ "id": 1 }200 / 정상 조회
{
"originalUrl": "https://naver.com",
"shortUrl": "https://url.kr/sturl"
}
404 / 조회할 short url 이 존재 하지 않을때
{ "errorMessage": "단축된 url 정보가 없습니다." }
[단축주소 페이지로 리다이렉션]