Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[add/fix] REST API > 게시글 조회수 중복 방지 & 게시글/댓글 작성 딜레이 적용 #635

Merged
merged 10 commits into from
Jul 10, 2024

Conversation

Junanjunan
Copy link
Contributor

변경 사항

  • REST API를 통해 게시글 조회시 중복적으로 조회수가 올라가는 오류 수정
  • REST API를 통해 게시글/댓글 작성시 딜레이 적용시간 없이 작성되는 오류 수정
  • slowapi 라이브러리를 활용 -> commit 반영시 아래 명령어 실행으로 dependency 추가
pip install -r requirements.txt 

관련 이슈

#612
#616

기타 정보

PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요. PR을 보내기 전에 모든 항목을 확인해야 합니다.

  • 동일한 업데이트/변경에 대한 다른 Pull Requests가 열려있는지 확인했습니다.
  • 테스트가 성공적으로 수행되었는지 확인했습니다.

slowapi 라이브러리 추가
 - request 요청 IP 주소를 통해 글쓰기 시간 간격 검증 및 제한
 - dependency 설치: pip install -r requirements.txt
FastAPI exception handler에 RateLimitExceeded를 일부 커스텀하여 등록
추가적인 limiter 등록을 위해 script 파일 정리
slowapi 라이브러리 활용
  -> 작성자 외의 회원이 게시글 조회시, 첫 조회시에만 조회수 증가
   - 기준: 하루 (@read_count_limiter.limit("1 per day"))
비밀번호 미입력으로 인한 에러 발생하여 글작성이 안된 경우에,
다시 댓글 작성시 slowapi를 통해서 글쓰기 시간 간격 검증에 걸리는 불편함이 생김.
  -> 비밀번호 검증 에러발생 로직을 slowapi 검증보다 먼저하기 위해 외부에서 호출
WARNING:slowapi:ratelimit 1 per 30 second (127.0.0.1) exceeded at endpoint: /api/v1/boards/notice/writes/27/comments
INFO:     127.0.0.1:59624 - "POST /api/v1/boards/notice/writes/27/comments HTTP/1.1" 429 Too Many Requests

Delay 적용으로 짧은 시간내 REST API 글쓰기 제한
  - Warning과 429 Error 함께 출력
  -> 429 Error만 출력되도록 Limiter class 대신 커스텀한 LimiterNoWarning class 사용
@Junanjunan Junanjunan merged commit 6518f3b into gnuboard:master Jul 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant