그누보드 5 API 마무리 , 비회원 글쓰기 api 변경 등 > 그누보드5 개발일지

그누보드5 개발일지

그누보드 5 API 마무리 , 비회원 글쓰기 api 변경 등 정보

그누보드 5 API 마무리 , 비회원 글쓰기 api 변경 등

본문

지난 4일간 변경사항입니다.

 

 

이번주는 마무리입니다.

미니님a  님께서 알려주셔서 문제점과 버그를 많이 수정했습니다. 감사합니다.

https://github.com/gnuboard/gnuboard5/issues/347

 

1 . 비회원 글쓰기 API 변경

 

그누보드에 환경설정에 보시면  

글쓰기/댓글쓰기에 글쓰기 시간 간격을 둘 수있습니다.  config 테이블의 cf_delay_sec 컬럼입니다

 

api 에서는 세션을 쓰지 않고있어서

글쓰기/댓글쓰기에 한정하여 토큰 발행을 강제하고

서버에서 토큰을 저장하여 접근시간 기준으로 구분하게 바꿨습니다.

 

이 과정에서 비회원도 글쓰기 토큰이 필요해졌고 비회원 엑세스 토큰 발급 API 가 추가되었습니다.

 

990520834_1728607614.4172.png

 

비회원용 일회성 엑세스 토큰 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  게시판 라우터

 

990520834_1728611049.7518.png

$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 주석 등이 수정되었습니다.

 

작업내역

github.com/gnuboard/gnuboard5/compare/1a48f517ef6672d618d18aca345a8397281d0c41...d9d3b228d4caed928170c201626b9e2af73afaf3

추천
2

댓글 0개

전체 27 |RSS
그누보드5 개발일지 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT