목차

1. views/blog_api.py: 블로그 API 로직

blog_api.py는 블로그 기능과 관련된 모든 서버 로직을 처리하는 Flask 블루프린트 모듈입니다. 이 파일은 게시물 및 댓글 관리, 사용자 인증, 파일 업로드 등 블로그 운영에 필요한 다양한 기능을 API 엔드포인트 형태로 제공합니다.

url_prefix='/api/blog' 설정에 따라, 이 파일에 정의된 모든 API 주소는 /api/blog로 시작합니다. 이는 API 엔드포인트의 일관성과 모듈성을 보장합니다.


주요 기능 및 엔드포인트

blog_api.py는 다음과 같은 주요 기능들을 위한 RESTful API 엔드포인트를 제공합니다.


인증 (%%/auth%%)


게시물 (Post) 관리

블로그 게시물을 생성, 조회, 수정, 삭제하는 데 사용되는 엔드포인트입니다.

엔드포인트 HTTP 메서드 설명 관리자 인증
/posts GET 모든 게시물을 최신순으로 조회합니다. 필요 없음
/posts/<id> GET 특정 ID의 게시물을 조회하고, 조회수를 1 증가시킵니다. 필요 없음
/posts POST 새 게시물을 등록합니다. 요청 본문에 게시물 제목, 내용 등을 포함해야 합니다. 필요
/posts/<id> PUT 기존 ID의 게시물을 수정합니다. 요청 본문에 수정할 내용을 포함해야 합니다. 필요
/posts/<id> DELETE 특정 ID의 게시물을 삭제합니다. 필요

댓글 (Comment) 관리

각 게시물에 대한 댓글을 관리하는 엔드포인트입니다.

엔드포인트 HTTP 메서드 설명 인증/비밀번호 필요 여부
/posts/<id>/comments POST 특정 게시물(ID)에 새 댓글을 추가합니다. 댓글 작성 시 입력된 비밀번호는 해시되어 저장됩니다. 필요 없음 (댓글 비밀번호로 인증)
/posts/<id>/comments/<comment_id> PUT 특정 게시물(ID) 내의 댓글(comment_id)을 수정합니다. 수정 요청 시 올바른 댓글 비밀번호를 제공해야 합니다. 댓글 비밀번호 필요
/posts/<id>/comments/<comment_id> DELETE 특정 게시물(ID) 내의 댓글(comment_id)을 삭제합니다. 삭제 요청 시 올바른 댓글 비밀번호를 제공해야 합니다. 댓글 비밀번호 필요

기타 기능

블로그 운영에 필요한 기타 유틸리티성 엔드포인트입니다.

엔드포인트 HTTP 메서드 설명 관리자 인증
/site-info GET 사이트의 총 방문자 수를 반환하고, 동시에 방문자 카운트를 1 증가시킵니다. 필요 없음
/images POST 게시물 내용에 포함될 이미지를 서버에 업로드합니다. 업로드된 이미지의 접근 가능한 URL을 반환하여 게시물 내용에 삽입할 수 있도록 합니다. 필요

보안 처리

blog_api.py는 다음과 같은 보안 메커니즘을 적용하여 블로그 시스템의 안정성과 데이터 무결성을 확보합니다.

이처럼 blog_api.py는 블로그 기능의 핵심 로직을 체계적으로 구현할 뿐만 아니라, 사용자 데이터 보호와 시스템 보안을 위한 다양한 측면까지 고려하여 설계되었습니다.