python, django, djongo, mongodb, postman, jwt, bcrypt, AWS ec2, atlas
김민호 - 회원가입/로그인 구현
박치훈 - 댓글 CRUD
이기용 - 게시글 CRUD
POST /users/signup
body key list : email, password, name
-
정규표현식을 통해 이메일과 비밀번호 유효성 검사를 하고, 유효한 값일 때만 유저가 생성되게 했습니다.
(비밀번호 조건 : 8자 이상 / 최소 하나의 문자, 숫자, 특수문자) -
bcrypt를 사용하여 비밀번호를 암호화 저장할 수 있게 했습니다.
-
Unit Test
POST /users/signin
body key list : email, password
-
로그인 시, jwt 토큰이 발행됩니다.
-
Unit Test
POST /postings
body key list : category_id, title, content
headers / Authorization : token
-
로그인 유저만 가능합니다.
-
Unit Test
GET /postings?keyword=
-
특정 키워드를 입력하여 검색할 때, 검색 단어는 Query Parameter로 받으며
제목 혹은 내용에 해당 글자가 들어가는 게시글 리스트를 조회합니다. -
Unit Test
GET /postings/{int:posting_id}
request.session 사용
-
Path Parmameter로 게시글 ID를 식별하여 조회합니다.
-
로그인한 유저가 이미 조회를 한 게시물이라면 조회수가 안 오르도록 설정하였습니다.
-
Unit Test
POST /postings/{int:posting_id}
body key list : title, content, category_id (3가지 모두 선택 사항)
headers / Authorization : token
-
Path Parmameter로 게시글 ID를 식별하여 수정합니다.
-
해당 게시물을 작성한 유저만 수정 가능하며, 일괄 수정이 아닌 일부 수정도 가능하게 설정하였습니다.
-
HTTP method의 경우, POST를 이용하였습니다.
-
Unit Test
DELETE /postings/{int:posting_id}
headers / Authorization : token
-
Path Parmameter로 게시글 ID를 식별하여 삭제합니다.
-
Unit Test
POST /postings/comments/{int:posting_id}
body key list : content(필수), parent_comment_id
headers / Authorization : token
-
Path Parameter로 식별된 게시글에 댓글을 등록합니다.
-
로그인 유저만 등록할 수 있습니다.
-
Unit Test
GET /postings/comments/{int:posting_id}
-
Path Parameter로 식별된 게시글에 등록된 댓글을 조회합니다.
-
page당 5개의 댓글로 기획하여 querystring으로 page 값을 받아 pagination을 구현하였습니다.
-
Unit Test
DELETE /postings/comment/{int:comment_id}
headers / Authorization : token
-
Path Parameter로 식별된 댓글 및 대댓글을 삭제합니다.
-
해당 댓글들을 작성한 유저만 삭제할 수 있습니다.
-
Unit Test
PATCH /postings/comment/{int:comment_id}
body key list : content
headers / Authorization : token
-
Path Parameter로 식별된 댓글 및 대댓글을 수정합니다.
-
해당 댓글들을 작성한 유저만 수정할 수 있습니다.
-
Unit Test
GET /postings/comment/{int:comment_id}
-
Path Parameter로 식별된 댓글의 대댓글을 조회합니다.
-
page당 5개의 댓글로 기획하여 querystring으로 page 값을 받아 pagination을 구현하였습니다.
-
Unit Test