그누보드 5 API 9/13 일 썸네일과 사용자라우터 분리 등 > 그누보드5 개발일지

그누보드5 개발일지

그누보드 5 API 9/13 일 썸네일과 사용자라우터 분리 등 정보

그누보드 5 API 9/13 일 썸네일과 사용자라우터 분리 등

본문

지난 며칠동안 썸네일과 토큰 오류 사용자 라우터 쪽을 작업했습니다.

 

썸네일

 

썸네일은 게시글 조회, 게시글 목록 API 에서

thumbnail 키의 src 에 주소가 출력됩니다.

 

API 데모 - 게시글 조회  free , wr_id 191

 

990520834_1726223333.3876.png

 

 

tthumbnail 함수와 매개변수가 동일합니다.

 

ThumbnailService 클래스내 createThumbnail 함수입니다.

 

기존 썸네일 함수에서 바뀐점

* 이미지마다 필요한 메모리를 계산하여 추가 할당합니다.

* 썸네일 생성 실패시 기존함수는 원본이미지 이름을 반환했지만 createThumbnail 는 false 를 리턴합니다.

 

정적 멤버함수라서 

사용은 이렇습니다.

 

$thumb_name = ThumbnailService::createThumbnail ($주소포함파일이름, $원본파일경로, $저장경로, $썸네일가로, $썸네일세로);

 

가로사이즈 기준으로 생성하기 때문에 세로크기는 옵션입니다.

 

코드링크

https://github.com/gnuboard/gnuboard5/blob/696df74d21ef09562aed898aa03543c9147d35c9/api/Service/ThumbnailService.php#L115

 

 

기존 썸네일 함수를 가져와 쓰다보니 몇가지 문제가 있었습니다.

템플릿버전에서는 몇개 오류나도 Warning 로그 이후 no img 를 출력합니다.

하지만 PHP8 에서 GD 함수들은 이상한 이미지파일들에 대해 ValueError 를 발생시키는데 

슬림프레임워크에서 바로 중단시켜서 api 응답자체를 못하는 일이 생겼습니다.

 

그래서 try catch 문으로 변경하여 ValueError 를 넘겼습니다.

공식문서에 없길래 문서화 안되었다고 그쪽 저장소에 올렸습니다

PHP 8 부터는 파일, 스트림등 외부에서 읽어오는것들에 대해 공통으로 발생할 수있는 오류라고 합니다.

990520834_1726220792.2833.png


 

 

990520834_1726220558.4083.png

답변 구글번역.

https://github.com/php/doc-en/issues/3714

 

 

PHP 문서 관리자는 스트림쪽에만 설명 적혀있고 개별 함수에 추가설명이 필요한지 고민하고 계시네요.

 

 

2. 사용자 라우터 추가

 

그누보드 5 API 는 

그누보드폴더/api/v1 에 있습니다.

 

 

 

변경점들

 

사용자가 훅이라던지 자기만의 api 를 추가하려고 하면 둘곳이 없고

게다가 라우터 주소도 버전이 한가지만 되고있었습니다.

대게 API 를 전환한다거나 하면 기존것을 그대로 두고 새 API로 이전하게됩니다.

 

 

api 밑에 Plugin 폴더를 두어 폴더 하나가 하나의 플러그인이 됩니다.

그누보드

        - api

             - Plugin - 사용자 제작 api 폴더

             - v1   - 그누보드 5  api

 

플러그인 폴더에

Router 폴더 밑의 php 파일들을 인클루드 하게 되어있습니다.

990520834_1726223051.8595.png

api/index.php 

api/index.php 코드

 

라우터에서 주소를 나누어 필요한 컨트롤러 모듈등 자유롭게 호출하여 사용하게 됩니다.

개별 플러그인에서 컨트롤러에 openapi doc 을 추가하면

 

API 문서 스웨거 페이지에도 같이 나옵니다.

 

그밖에 일반로그인, 소셜로그인에서 발급된 리프레시 토큰 오류를 수정했습니다.

 

-------

작업 내역

 

썸네일 추가 

https://github.com/gnuboard/gnuboard5/commit/e2145a0a9bca94cb3ae7f4af9bb225c971a6d45b

https://github.com/gnuboard/gnuboard5/commit/696df74d21ef09562aed898aa03543c9147d35c9

 

사용자 플러그인 폴더 추가 

https://github.com/gnuboard/gnuboard5/commit/dd7a0b375ef02ae1f960dd9c0c5b0322b9896b99

 

리프레시 토큰 수정, seo url 서비스 추가 , 소셜로그인 오류 등 기타 오류 수정

 

https://github.com/gnuboard/gnuboard5/compare/f6a0ec60cf46fa6bccc55c355688532cc519d321...0fc87cf4ffb9c5007531f3f62e008ca181e5f0ec

 

추천
3

댓글 4개

API개발중에 여기 저기 요청, 수정사항이 많아서 바쁘시겠네요 ~ 

그래도 API가 잘 만들어지면, 앞으로 사용용도는 많을것 같습니다.

고생 많으십니다. 화이팅 하세요! 

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

회원로그인

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