A | B | C | D | E | F | |
---|---|---|---|---|---|---|
1 | 기능 | 메소드 | URI | Request | Response | Response(error) |
2 | 로그인 | POST | /login | { "loginId": "user1234", "password": "pw1234" } | 200 / 로그인 성공 { "message": "로그인 되었습니다.", "accessToken": "eyJhbGciO.......", "refreshToken": "eyJhbGciO.......", "locals.user" : id } (토큰 쿠키 등록) | 412 / 가입되지 않은 아이디 { "errorMessage": "가입되어있지 않은 계정입니다." } 412 / 패스워드 불일치 { "errorMessage": "비밀번호가 일치하지 않습니다." } |
3 | 로그아웃 | POST | /logout | 200 / 로그아웃 성공 { "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 | /shorts | 200 / 단축주소 조회 성공 { "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 | 단축주소(조회/유저) | GET | users 테이블의 id /shorts/users/:id | { "id": res.locals.user, "offset": 1, } | 200 / 정상 조회 { "shortsData": [{id, originalUrl, shortUrl},...], } 생성한 데이터들 페이지네이션 | 401 / 로그인 되어있지 않을때 { "errorMessage": "로그인 해주세요." } [로그인 페이지로 리다이렉션] |
15 | 단축주소(조회/단일) | GET | shortUrl 테이블의 id /shorts/list/:id | { "id": 1 } | 200 / 정상 조회 { "originalUrl": "https://naver.com", "shortUrl": "https://url.kr/sturl" } | 404 / 조회할 short url 이 존재 하지 않을때 { "errorMessage": "단축된 url 정보가 없습니다." } [단축주소 페이지로 리다이렉션] |