{
"status": "OK",
"code": 200,
"message": "자주 하는 질문 조회가 완료되었습니다.",
"result": {
"articles": [
{
"id": 10,
"title": "i am title",
"content": "i am content"
},
{
"id": 9,
"title": "i am title",
"content": "i am content"
}, … ]
}
{
"status": "OK",
"code": 200,
"message": "공지사항 수정이 완료되었습니다."
}
{
"status": "Error",
"code": 404,
"message": "Illegal Argument"
}
기능 | URI | METHOD | Request body | Response body | 참고할 사항 | ||
---|---|---|---|---|---|---|---|
1 | 모의고사 리스트 출력 | /exams | GET | { | |||
”exams”: [ |
{
“id”: 1
“teacher”: “teacher”,
“target_date”: 12,
“correct_answer”:0,
“wrong_answer”: 0
},
{
“id”: 2
“teacher”: “teacher2”,
“target_date”: 11,
“correct_answer”:37,
“wrong_answer”: 3
},
{
……
}
]
} | id 기출문제 고유 번호 | |
| 2 | 채점하기 | /exams/grading | POST | “answer”: [A, B, C, A, B] | “correct_answer”: 35
”wrong_answer”: 5 | | |
| 3 | 틀린 문제 보기 | /exams/wrong_problems/{mock_exam_id}/{order} | GET | | “wrong_problem”: {
”id”: “2”,
”problem”: “”,
”choice_a”: “~”,
”choice_b”: “~”,
”choice_c”: “~”,
”choice_d”: “~”,
”answer”: “A”
} | | |
| 5 | 즐겨찾기 추가/삭제 | /exams/star_problems/{id} | PUT
DELETE | | | | |
| 6 | 틀린 문제 삭제 | /exams/wrong_problems/{id} | DELETE | | | | |”,
”choice_a”: “~”,
”choice_b”: “~”,
”choice_c”: “~”,
”choice_d”: “~”,
”answer”: “A”
} | order는 몇 번째 문제인지 보내고 | |
| 4 | 즐겨찾기한 문제 보기 | /exams/star_problems/{order} | GET | | “star”: {
”id”: “1”, //즐겨찾기 한 문제의 고유 번호
”problem”: “
기능 | URI | METHOD | Request body | Response body | 참고할 사항 | |
---|---|---|---|---|---|---|
1 | 로그인 | /users/login | POST | { | ||
“username”:username, | ||||||
“password”:password | ||||||
} | status code | JWT 검색 |
액세스 토큰 리프레쉬 토큰
클라이언트에서 두 토큰 보관
어떤 작업을 할 때마다 헤더에 담아서 bearer token | | 2 | 로그아웃 | /users/logout | GET | bearer token에 담겨있는 access_token에 대한 로그아웃을 진행합니다. | status Code | | | 3 | 회원가입 | /users/signup | POST | {
“username”: 아이디, “password”: 비밀번호, “password_confirm” : 비밀번호 확인, “email”: 이메일 } | status code | 이미지 파일을 변환하지 않고 그대로 받고 싶은 | | 4 | 아이디 중복 확인 | /users/id_duplicate_check | POST | { ”id”: “idexample” } | //사용 가능 → 인증 { "status": "OK", "code": 200,}
//이미 가입된 메일
{
"status": "ERROR",
"code": 409,
"message": "username already exists"
} | |
| 5 | 이메일 인증 번호 발송
→이미 가입한 이메일은? | /users/send_certification_number | POST | {
”email”: “[email protected]”
} | {
”certification_number”: “V759LB7A”
} | |
| 6 | 이메일 인증 번호 확인 | /users/certification_number_confirm | POST | {
"username": "[email protected]",
"certification_number": "V759LB7A"
} | ~~{
"status": "OK",
"code": 200,
"message": "인증번호가 일치합니다."
}
{ "status": "OK", "code": 406, "message": "인증번호가 일치하지 않습니다." }~~ | | | 7 | 회원정보조회 | 전체회원조회 /users | GET | 본인정보 조회의 경우 bearer token에 담겨있는 access_token 이 관리자일 경우에만 사용 가능 | status code [ “username”: 아이디, “email”: 이메일 ] | 로그인을 유지하는 요청 header에 토큰을 담아서 계속 보내기 | | 8 | 회원정보수정 | /users | PATCH | { "password": "newpassword!@", "password_confirm": "newpassword!@", "email": "new 이메일" } | status code | | | 9 | refresh token 재발급 | /users/refresh | GET | bearer token에 담겨있는 refresh_token에 대한 access token 재발급을 진행합니다. (refresh_token은 변경 X; 원하면 가능) | { "status": "OK", "code": 200, "message": "refresh success", "result": { "result": { "accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyQHVzZXIuY29tIiwicm9sZSI6IlJPTEVfVVNFUiIsImlkIjozLCJpYXQiOjE2ODQ2MTcwMzksImV4cCI6MTY4NDYyMDYzOX0.MtAR2zi_0Yeb86IOG5J09Df19oYKY", "refreshToken": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyQHVzZXIuY29tIiwiaWF0IjoxNjg0NjE3MDI5LCJleHAiOjE2ODUyMjE4Mjl9" } } } | 토큰 해석 탈취할 수 있어서 로그인 한 유저는 토큰 생성 토큰 유효기간이 있음 만료되면 만료됐다고 서버에서 보내줌
로그인 할 때 한 사용자에 토큰 2개 생성
엑세스 토큰(15분~30분)
리프레쉬 토큰(일주일)
액세스 토큰 만료 시 리프레쉬 토큰 보내면 새 엑세스 토큰 발급 |
| 10 | 회원정보수정용
로그인 사용자 정보 받기 | /users/check | GET | bearer token에 담겨있는 access_token에 대한 사용자의 정보 조회를 진행합니다. | [
“username”: 아이디,
“password”: 비밀번호,
“password_confirm” : 비밀번호 확인,
“manager_email”: 담당자 이메일
] | |
| 11 | 회원탈퇴 | /users | DELETE | bearer token에 담겨있는 access_token에 대한 회원탈퇴를 진행합니다. | status code | |
| 12 | 아이디 찾기 | /users/find_id | POST | {
"email": "[email protected]"
} | ~~//code로 구분해놨으니까 이부분으로 체크하시면 쉬우실듯?
{ "status": "OK", "code": 409, "message": "해당 이메일은 이미 사용중입니다." }
{
"status": "OK",
"code": 410,
"message": "해당 이메일은 존재하지 않습니다."
}~~ | 전화번호 인증은 유료서비스입니다. |
| 13 | 비밀번호 찾기 | 이메일 인증
/users/find_password
| POST | {
"username": "[email protected]"
} | {
"status": "OK",
"code": 200,
"message": "kGM3AiU0"
} | |
| 14 | 비밀번호 재설정 | /users/set_new_password | POST | {
"username": "[email protected]",
"password": "abcdef",
"password_confirm": "abcdef",
”certification_number”: “V759LB7A"
} | ~~{
"status": "OK",
"code": 200,
"message": "비밀번호 재설정이 완료되었습니다."
}
{ "status": "ERROR", "code": 400, "message": "아이디 또는 비밀번호가 올바르지 않습니다." }~~ | |