이번에는 인스타 클론코딩을 진행 하면서 아래와 같이 구현 했습니다.
✔️ 무한스크롤 - 스크롤이 바닥에 닿을 때마다 게시물 로드
✔️ 댓글 API
댓글API를 구현하면서,
데이터를 검증하는 부분에서 아래와 같이 기능을 추가해봤습니다.
✔️ 댓글 달기
+
✔️ 댓글 수정
✔️ 댓글 삭제
구현할 엔드포인트는 아래와 같습니다.
댓글을 작성한 유저만 댓글을 수정 / 삭제 할 수 있어야 합니다.
요청할 URL을 살펴보면, post_id 와 comment_id로 게시물에 대한 댓글을 수정할 수 있을 것 같습니다.
구현
class CommentDetail(Resource):
@classmethod
@jwt_required()
def put(cls, post_id, comment_id):
'''
댓글 수정
'''
pass
@classmethod
@jwt_required()
def delete(cls, post_id, comment_id):
'''
댓글 삭제
'''
pass
작성할 메서드는 위와 같습니다.
먼저 아래와 같이 댓글 수정을 구현해보겠습니다.
52줄 - JWT 토큰 요청을 보낸 username을 알아냄
53줄 - 알아낸 username을 가진 유저id를 알아냄
56줄 - 댓글이 있는지 확인
59줄 - 요청한 사용자 == 댓글 작성자 and 작성한 댓글에 해당하는 게시물 id == 게시물 id
60줄 - 만족한다면 수정을 함
61줄 - 다르다면 수정하지 않음
이제 게시물 삭제하는 경우도 추가해보겠습니다.
이제 실제로 테스트 해보겠습니다.
올바른 Access Token을 담고
107 번째에 작성한 게시물에 댓글을 작성하겠습니다.
성공적으로 댓글이 작성 되었습니다.
이제 댓글 작성자의 author_id로 댓글을 수정해보겠습니다.
성공적으로 댓글수정이 되었습니다.
이제 삭제도 되는지 시도해보겠습니다.
성공적으로 댓글이 삭제 되었습니다.
마지막으로 올바르지 않은 댓글 작성자의 author_id로 댓글을 삭제요청 해보겠습니다.
요청한 사용자와 댓글 작성자가 일치하지 않으므로 삭제가 이루어지지 않습니다.
Reference Path
'flask' 카테고리의 다른 글
werkzeug 의 정규표현식 (0) | 2022.11.16 |
---|---|
WSGI와 Werkzeug (0) | 2022.11.16 |
flask clone coding [3] (JWT 구현) (0) | 2022.11.15 |
flask clone coding [2] (데이터 검증) (0) | 2022.11.13 |
flask clone coding [1] (Flask-SQLAlchemy 3.0 변경사항) (0) | 2022.11.06 |