그누보드 5 API 마무리 , 비회원 글쓰기 api 변경 등 정보
그누보드 5 API 마무리 , 비회원 글쓰기 api 변경 등본문
지난 4일간 변경사항입니다.
이번주는 마무리입니다.
미니님a 님께서 알려주셔서 문제점과 버그를 많이 수정했습니다. 감사합니다.
https://github.com/gnuboard/gnuboard5/issues/347
1 . 비회원 글쓰기 API 변경
그누보드에 환경설정에 보시면
글쓰기/댓글쓰기에 글쓰기 시간 간격을 둘 수있습니다. config 테이블의 cf_delay_sec 컬럼입니다
api 에서는 세션을 쓰지 않고있어서
글쓰기/댓글쓰기에 한정하여 토큰 발행을 강제하고
서버에서 토큰을 저장하여 접근시간 기준으로 구분하게 바꿨습니다.
이 과정에서 비회원도 글쓰기 토큰이 필요해졌고 비회원 엑세스 토큰 발급 API 가 추가되었습니다.
비회원용 일회성 엑세스 토큰 API 입니다.
토큰을 저장하기 위한 테이블이 추가되었습니다.
g5_throttle 테이블입니다.
th_token_hash - varchar 80 기본키 sha256 으로 해시된 엑세스 토큰
th_scope - varchar 50 적용범위
th_created_at datetime 토큰 추가시각
th_last_access_at datetime 마지막 접근시각
th_scope 는 글쓰기와 댓글쓰기는 동작이 다르기때문에 분리하기위해 추가했습니다
WriteDelayMiddleware 미들웨어가 추가되었습니다.
board.php 게시판 라우터
$group->group('/writes', function (RouteCollectorProxy $group) {
$group->get('/guest-write-token', [BoardController::class, 'getGuestWriteToken']);
$group->get('', [BoardController::class, 'getWrites']);
$group->post('', [BoardController::class, 'createWrite']) // 게시글 추가
->add(new WriteDelayMiddleware('write')); // 라우터에 미들웨어 추가시 생성자에 적용범위를 지정합니다.
ThrottleService 클래스가 추가되었습니다.
토큰당 딜레이를 계산, 입출력하는 멤버함수가 모여있습니다.
쪽지 API 변경
쪽지 조회 API 가 기존에는 읽지 않은 쪽지만 표시했습니다.
읽은 쪽지도 모두표시하고 읽음표시여부인 me_is_read 항목이 추가되었습니다.
이미지 확장자 검사 함수 일원화
get_allow_image_ext
get_allow_video_ext 함수가 추가되었습니다.
기존에 하드코딩된 이미지 확장자검사를 관리자 환경설정에서 설정한 이미지 확장자들로 지정합니다.
성능 개선
- 게시판 목록 API 에서 캐시로직이 적용안되어 중복 쿼리 호출이 있었습니다.
이제 wr_id 가 같은 게시글의 첨부파일은 한번만 호출됩니다.
그 외 검색 api 오류, 게시글 임시저장 API, 게시글 목록 썸네일 출력 미표시, PHP doc 주석 등이 수정되었습니다.
작업내역
2
댓글 0개