DB 설계를 대략 마쳤으니 이제 대략적인 API설계를 해보자!
크게 users, courses, reviews, talks, studies, projects가 있다.
users
Method | url | 기능 |
---|
POST | /users/signup | 회원가입 |
POST | /users/login | 로그인 |
POST | /users/logout | 로그아웃 |
POST | /users/check/email | 이메일 중복 조회 |
POST | /users/check/nickname | 닉네임 중복 조회 |
GET | /users/me | 내 정보 조회 |
PATCH | /users/me | 내 프로필 편집 |
DELETE | /users/me | 회원 탈퇴 |
POST | /users/password | 비밀번호 찾기 |
PATCH | /users/password | 비밀번호 변경 |
GET | /users/:id | 해당 회원 정보 가져오기 |
courses
Method | url | 기능 | |
---|
GET | /courses/:id | 해당 강의 정보 받아오기 | |
GET | /courses | 리뷰 받아오기 (리뷰 많은 순 16개) | ?perPage=&page= |
GET | /courses?big= | 강의들 받아오기 | ?perPage=&page= |
GET | /courses?small= | 강의들 받아오기 | ?perPage=&page= |
GET | /courses?skill= | 강의들 받아오기 | ?perPage=&page= |
GET | /courses/search?keyword= | 해당 강의 검색 | |
POST | /courses/likes/:id | 해당 강의 북마크 | |
DELETE | /courses/likes/:id | 해당 강의 북마크 해제 | |
GET | /courses/likes/me | 내가 북마크 한 강의들 가져오기 | |
GET | /courses/likes/users/:id | 해당 유저가 북마크한 강의들 가져오기 | ? |
GET | /courses/instructors/:id | 해당 강사의 강의들 받아오기 | |
POST | /courses | 강의 추가 | admin |
PATCH | /courses/:id | 해당 강의 정보 수정 | admin |
DELETE | /courses/:id | 해당 강의 삭제 | admin |
reviews
Method | url | 기능 |
---|
GET | /reviews/:course_id | 해당 강의의 모든 리뷰 받아오기 (6개) |
POST | /reviews/:course_id | 리뷰작성 |
PATCH | /reviews/:course_id/:id | 해당 리뷰 수정 |
DELETE | /reviews/:course_id/:id | 해당 리뷰 삭제 |
GET | /reviews/instructors/:id | 해당 강사의 강의 리뷰 받아오기 (6개) |
GET | /reviews/me | 내가 쓴 리뷰 받아오기 |
GET | /reviews/users/:user_id | 해당 유저가 쓴 리뷰 받아오기 |
POST | /reviews/helped/:id | 해당 리뷰에 도움됨 누르기 |
DELETE | /reviews/helped/:id | 해당 리뷰에 도움됨 취소 |
talks
Method | url | 기능 |
---|
GET | /talks | 모든 게시글 가져오기 |
GET | /talks?category= | 해당 카테고리 글 가져오기 |
GET | /talks/:id | 해당 게시글 가져오기 |
POST | /talks | 게시글 작성 |
PATCH | /talks/:id | 해당 게시글 수정 |
DELETE | /talks/:id | 해당 게시글 삭제 |
GET | /talks/search?keyword= | 게시글 검색 |
GET | /talks/:talk_id/comments | 해당 게시글 댓글 받아오기 |
POST | /talks/:talk_id/comments | 해당 게시글 댓글 작성 |
PATCH | /talks/:talk_id/comments/:id | 해당 게시글 댓글 수정 |
DELETE | /talks/:talk_id/comments/:id | 해당 게시글 댓글 삭제 |
studies
Method | url | 기능 |
---|
GET | /studies | 모든 스터디 가져오기 |
GET | /studies?skill= | 해당 스킬 스터디 가져오기 |
GET | /studies?ongoing= | 모집중인 스터디 가져오기 |
GET | /studies/:id | 해당 스터디글 가져오기 |
POST | /studies | 스터디 글 작성 |
PATCH | /studies/:id | 스터디 수정 |
DELETE | /studies/:id | 스터디 삭제 |
GET | /studies/:study_id/comments | 해당 스터디 댓글 받아오기 |
POST | /studies/:study_id/comments | 해당 스터디 댓글 작성 |
PATCH | /studies/:study_id/comments/:id | 해당 스터디 댓글 수정 |
DELETE | /studies/:study_id/comments/:id | 해당 스터디 댓글 삭제 |
projects
Method | url | 기능 |
---|
GET | /projects | 모든 프로젝트 가져오기 |
GET | /projects?position= | 해당 포지션 프로젝트 가져오기 |
GET | /projects?skill= | 해당 스킬 프로젝트 가져오기 |
GET | /projects?ongoing= | 모집중인 프로젝트 가져오기 |
POST | /projects | 프로젝트 글 작성 |
PATCH | /projects/:id | 프로젝트 글 수정 |
DELETE | /projects/:id | 프로젝트 글 삭제 |
GET | /projects/:project_id/comments | 해당 프로젝트 댓글 받아오기 |
POST | /projects/:project_id/comments | 해당 프로젝트 댓글 작성 |
PATCH | /projects/:project_id/comments/:id | 해당 프로젝트 댓글 수정 |
DELETE | /projects/:project_id/comments/:id | 해당 프로젝트 댓글 삭제 |