그누보드 restful API 0.2(2019-09-06 18:00) > 그누보드5 플러그인

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

그누보드 restful API 0.2(2019-09-06 18:00) 정보

그누보드 restful API 0.2(2019-09-06 18:00)

첨부파일

restfulAPI0.2.zip (82.0K) 232회 다운로드 2019-09-06 18:11:37

본문

코드이그나이터의 restful server를 활용한 그누보드 api입니다

기본적인 데이터 가져오기만 지원되며, 

api키를 발급하여 호출하는 형태의 api입니다.

 

해당 소스는 api키를 발급 후 api의 일정 호출횟수가 넘어가면,

일정시간 후에 다시 접근 가능하게 되어있지만

 

특정ip만 접근하거나 특정ip만 접근하지 못하게 하거나

또는 로그인(인증)을 이용하여 접근하게 할 수 있습니다.

 

사용한 restful server의 자세한 사용법은 아래의 github에서 확인해보세요

https://github.com/chriskacerguis/codeigniter-restserver

 

데모사이트는 아래와 같습니다.

 

https://kbl-ref.com/api/gnuboard/ //그누보드 API접근

 

https://kbl-ref.com/api/key //키 발급

 

데모 키 : kw0w88gok4ogskc0kko880cgkwksksk0wo0ksgwk

 

https://kbl-ref.com/api/gnuboard?GNU-API-KEY=kw0w88gok4ogskc0kko880cgkwksksk0wo0ksgwk

이런식으로 접근 가능합니다.

 

현재 데모사이트에선 5번 조회하면 5초후에 다시 접근 가능하게 되어있습니다.

 

아래의 주소에선 API키를 생략하곘습니다.

 

http://kbl-ref.com/api/gnuboard/board/bo_table/free/mb_id/bookyoon/ 

해당 게시판(id)와 아이디 입력하여 접근(g5_write_free의 bookyoon가 쓴 글)

 

http://kbl-ref.com/api/gnuboard/board //g5_board 접근

 

http://kbl-ref.com/api/gnuboard/content //g5_content 접근

 

http://kbl-ref.com/api/gnuboard/visit //방문자수 접근

 

아직 만드는 도중이라 get과 일부 post만 지원하고 있습니다.

PUT DELETE INSERT쪽은 아직 만들어지지 않았습니다.

 

아직 만드는 도중이기 때문에 어떤식의 지원이 되면 좋을지 댓글에 남겨주시면 적극 반영해보도록 하겠습니다.

 

---설치 방법---

 

아파치 서버 기준으로 작업되어있습니다.

ngnix서버, 윈도우 서버의 경우 경우 해당파일의 .htaccess를 참조하여 알맞게 수정하셔야 합니다.

해당 압축파일을 그누보드 루트폴더의 임의의 폴더(resfulAPI)를 생성 후 업로드해주세요

업로드 후 
 


 CREATE TABLE `g5_keys` (
 `id` INT(11) NOT NULL AUTO_INCREMENT,
 `user_id` INT(11) NOT NULL,
 `key` VARCHAR(40) NOT NULL,
 `level` INT(2) NOT NULL,
 `ignore_limits` TINYINT(1) NOT NULL DEFAULT '0',
 `is_private_key` TINYINT(1) NOT NULL DEFAULT '0',
 `ip_addresses` TEXT NULL DEFAULT NULL,
 `date_created` INT(11) NOT NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 CREATE TABLE `g5_limits` (
 `id` INT(11) NOT NULL AUTO_INCREMENT,
 `uri` VARCHAR(255) NOT NULL,
 `count` INT(10) NOT NULL,
 `hour_started` INT(11) NOT NULL,
 `api_key` VARCHAR(40) NOT NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 CREATE TABLE `g5_logs` (
 `id` INT(11) NOT NULL AUTO_INCREMENT,
 `uri` VARCHAR(255) NOT NULL,
 `method` VARCHAR(6) NOT NULL,
 `params` TEXT DEFAULT NULL,
 `api_key` VARCHAR(40) NOT NULL,
 `ip_address` VARCHAR(45) NOT NULL,
 `time` INT(11) NOT NULL,
 `rtime` FLOAT DEFAULT NULL,
 `authorized` VARCHAR(1) NOT NULL,
 `response_code` smallint(3) DEFAULT '0',
 PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

위의 코드를 실행하여 DB를 생성해주셔야 합니다

앞의 g5_부분은 그누보드를 설치하실때 입력하셨던 접두사 부분을 입력하시면 됩니다.


업로드 후 applcation/config/config.php에서
$config['base_url'] = '';

부분을 찾아 해당 api 폴더의 경로를 풀 주소로 입력해주시면 됩니다.

ex) http://kbl-ref.com/api/

정식버전이 아니라 수정 및 재배포 불가합니다.

 

-------------------------------------------------------------------

2019-09-06 Ver 0.2 업데이트

 

로그인 인증과정, 

api를 통한 글쓰기를 추가하였습니다.

 

Gnuboard.php의 게시물 리스트 불러오는 과정에서 mb_id가 없는 경우에도 불러올 수 있도록 설정하였습니다

 

각각 Login.php, Write.php에 들어가있습니다.

Write의 경우 mb_id와 패스워드가 일치하면 회원이 글을 쓰게,

일치하지 않으면 회원이 아닌 사용자가 글을 쓰도록 되어 있으며

게시판의 레벨이나 권한에 따라 글쓰기 제한도 가능하게 해두었습니다

 

짬내서 만드는거라 진행속도가 원할하지 않습니다만

제공되었으면 하는 기능들을 말씀해주시면 적극 반영하도록 하곘습니다

 

추천
7

댓글 전체

해당 resfulAPI가 7.2버전 이상만 사용가능합니다
위의 압축파일에 코드이그나이터도 다 포함되어있어서 그냥 업로드하시면 됩니다
저도 비슷한걸 앱연동때문에 했는데

로그인-회원 아이디존재 확인, 아이디+비밀번호 확인
회원가입
게시물 확인
게시물 쓰기
게시판 목록 가져오기

5가지만 만들면 되더라구요
https://sir.kr/so_app/1509 예전에 썼던 글입니다.  중간에 보면 이름을 넣는다는 것은 별로 안좋은 것 같고.
jsonwebtoken 같은 것을 적용해서 로그인을 하면 token을 받아서 사용하는 것이 좋을 것 같습니다.
테스트 하는 방법은 보통 Postman을 많이 사용하는 것 같습니다.
전체 503
그누보드5 플러그인 내용 검색

회원로그인

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