그누보드5의 API 생성 및 관리 정보
그누보드5의 API 생성 및 관리본문
manus 1.6 Max를 통해 만든 그누보드5 api입니다.
기존 php+html의 페이지 대신 php기반 api+htmx로 더 빠르게 개발을 진행, 페이지를 로딩할 수 있을 듯 합니다.
테스트 해보니 잘 작동하는 것 같습니다,
크레딧이 딸려서 관리자 페이지가 썩 잘 만들어지지는 않았네요.
호환: 그누5 최신 + php8.2
그누보드5의 모든 기능을 API로 제공하는 독립적인 API 레이어입니다.
•코어 독립성: 그누보드5 코어 파일을 수정하지 않고 독립적으로 작동
•업데이트 호환: 그누보드5 개발사의 코어 업데이트에 영향받지 않음
•HTMX 친화적: JSON 및 HTML 응답 형식 지원
•관리자 통합: 그누보드5 관리자 페이지에서 API 관리 가능
Plain Text
/api ├── config.php # API 설정 파일 ├── index.php # API 메인 엔드포인트 ├── README.md # 이 문서 ├── core/ # 코어 클래스 │ ├── ApiBase.php # API 기본 클래스 │ └── init.php # 초기화 파일 ├── auth/ # 인증 API ├── member/ # 회원 API ├── board/ # 게시판 API ├── write/ # 게시글 API ├── comment/ # 댓글 API ├── point/ # 포인트 API ├── memo/ # 쪽지 API ├── scrap/ # 스크랩 API ├── search/ # 검색 API ├── popular/ # 인기검색어 API ├── poll/ # 투표 API ├── qa/ # Q&A API ├── content/ # 컨텐츠 API ├── faq/ # FAQ API ├── menu/ # 메뉴 API ├── visit/ # 방문자 API ├── config/ # 설정 API ├── file/ # 파일 API ├── latest/ # 최신글 API └── new/ # 새글 API
1./api 디렉토리를 그누보드5 루트에 복사
2./plugin/api_manager 디렉토리를 그누보드5 플러그인 디렉토리에 복사
3./extend/api_manager.extend.php 파일을 그누보드5 extend 디렉토리에 복사
4./adm/admin.menu950.php 파일을 그누보드5 관리자 디렉토리에 복사
JSON
{ "success": true, "message": "성공", "data": { ... }, "pagination": { "current_page": 1, "total_pages": 10, "total_count": 100, "per_page": 10 } }
format=html 파라미터를 추가하면 HTMX에서 바로 사용할 수 있는 HTML을 반환합니다.
Plain Text
GET /api/latest/?action=list&bo_table=free&format=html
HTML
<div hx-get="/api/latest/?action=list&bo_table=free&rows=5&format=html" hx-trigger="load"> 로딩 중... </div>
HTML
<div id="board-list" hx-get="/api/write/?action=list&bo_table=free&format=html" hx-trigger="load"> </div> <!-- 페이지네이션 --> <button hx-get="/api/write/?action=list&bo_table=free&page=2&format=html" hx-target="#board-list"> 다음 페이지 </button>
HTML
<form hx-post="/api/auth/?action=login&format=html" hx-target="#login-result"> <input type="text" name="mb_id" placeholder="아이디"> <input type="password" name="mb_password" placeholder="비밀번호"> <button type="submit">로그인</button> </form> <div id="login-result"></div>
관리자 페이지에서 API를 관리할 수 있습니다:
•API 설정: API 활성화, 로그, 요청 제한, CORS, 인증 설정
•API 목록: 각 API 엔드포인트 활성화/비활성화
•API 로그: API 호출 로그 조회
•API 키 관리: API 키 발급 및 관리
•API 테스트: API 요청 테스트
•API 문서: API 문서 조회
기존 php+html의 페이지 대신 php기반 api+htmx로 더 빠르게 개발을 진행, 페이지를 로딩할 수 있을 듯 합니다.
테스트 해보니 잘 작동하는 것 같습니다,
크레딧이 딸려서 관리자 페이지가 썩 잘 만들어지지는 않았네요.
호환: 그누5 최신 + php8.2
그누보드5 API
그누보드5의 모든 기능을 API로 제공하는 독립적인 API 레이어입니다.
특징
•코어 독립성: 그누보드5 코어 파일을 수정하지 않고 독립적으로 작동
•업데이트 호환: 그누보드5 개발사의 코어 업데이트에 영향받지 않음
•HTMX 친화적: JSON 및 HTML 응답 형식 지원
•관리자 통합: 그누보드5 관리자 페이지에서 API 관리 가능
디렉토리 구조
Plain Text
/api ├── config.php # API 설정 파일 ├── index.php # API 메인 엔드포인트 ├── README.md # 이 문서 ├── core/ # 코어 클래스 │ ├── ApiBase.php # API 기본 클래스 │ └── init.php # 초기화 파일 ├── auth/ # 인증 API ├── member/ # 회원 API ├── board/ # 게시판 API ├── write/ # 게시글 API ├── comment/ # 댓글 API ├── point/ # 포인트 API ├── memo/ # 쪽지 API ├── scrap/ # 스크랩 API ├── search/ # 검색 API ├── popular/ # 인기검색어 API ├── poll/ # 투표 API ├── qa/ # Q&A API ├── content/ # 컨텐츠 API ├── faq/ # FAQ API ├── menu/ # 메뉴 API ├── visit/ # 방문자 API ├── config/ # 설정 API ├── file/ # 파일 API ├── latest/ # 최신글 API └── new/ # 새글 API
설치
1./api 디렉토리를 그누보드5 루트에 복사
2./plugin/api_manager 디렉토리를 그누보드5 플러그인 디렉토리에 복사
3./extend/api_manager.extend.php 파일을 그누보드5 extend 디렉토리에 복사
4./adm/admin.menu950.php 파일을 그누보드5 관리자 디렉토리에 복사
API 엔드포인트
인증 API (/api/auth/)
| 액션 | 메서드 | 설명 |
| login | POST | 로그인 |
| logout | GET | 로그아웃 |
| check | GET | 로그인 상태 확인 |
| token | POST | 토큰 발급 |
회원 API (/api/member/)
| 액션 | 메서드 | 설명 |
| info | GET | 회원 정보 조회 |
| register | POST | 회원 가입 |
| update | POST | 회원 정보 수정 |
| leave | POST | 회원 탈퇴 |
| check_id | GET | 아이디 중복 확인 |
| check_email | GET | 이메일 중복 확인 |
| check_nick | GET | 닉네임 중복 확인 |
| find_id | POST | 아이디 찾기 |
| find_pw | POST | 비밀번호 찾기 |
게시판 API (/api/board/)
| 액션 | 메서드 | 설명 |
| list | GET | 게시판 목록 |
| info | GET | 게시판 정보 |
| categories | GET | 카테고리 목록 |
| groups | GET | 그룹 목록 |
게시글 API (/api/write/)
| 액션 | 메서드 | 설명 |
| list | GET | 게시글 목록 |
| view | GET | 게시글 상세 |
| create | POST | 게시글 작성 |
| update | POST | 게시글 수정 |
| delete | POST | 게시글 삭제 |
| good | POST | 추천 |
| nogood | POST | 비추천 |
댓글 API (/api/comment/)
| 액션 | 메서드 | 설명 |
| list | GET | 댓글 목록 |
| create | POST | 댓글 작성 |
| update | POST | 댓글 수정 |
| delete | POST | 댓글 삭제 |
포인트 API (/api/point/)
| 액션 | 메서드 | 설명 |
| list | GET | 포인트 내역 |
| sum | GET | 포인트 합계 |
쪽지 API (/api/memo/)
| 액션 | 메서드 | 설명 |
| list | GET | 쪽지 목록 |
| view | GET | 쪽지 상세 |
| send | POST | 쪽지 발송 |
| delete | POST | 쪽지 삭제 |
| unread | GET | 안읽은 쪽지 수 |
스크랩 API (/api/scrap/)
| 액션 | 메서드 | 설명 |
| list | GET | 스크랩 목록 |
| add | POST | 스크랩 추가 |
| delete | POST | 스크랩 삭제 |
검색 API (/api/search/)
| 액션 | 메서드 | 설명 |
| board | GET | 게시판 검색 |
| total | GET | 통합 검색 |
인기검색어 API (/api/popular/)
| 액션 | 메서드 | 설명 |
| list | GET | 인기검색어 목록 |
투표 API (/api/poll/)
| 액션 | 메서드 | 설명 |
| list | GET | 투표 목록 |
| view | GET | 투표 상세 |
| vote | POST | 투표하기 |
| result | GET | 투표 결과 |
Q&A API (/api/qa/)
| 액션 | 메서드 | 설명 |
| list | GET | Q&A 목록 |
| view | GET | Q&A 상세 |
| create | POST | Q&A 작성 |
| update | POST | Q&A 수정 |
| delete | POST | Q&A 삭제 |
| config | GET | Q&A 설정 |
컨텐츠 API (/api/content/)
| 액션 | 메서드 | 설명 |
| list | GET | 컨텐츠 목록 |
| view | GET | 컨텐츠 상세 |
FAQ API (/api/faq/)
| 액션 | 메서드 | 설명 |
| categories | GET | FAQ 카테고리 목록 |
| list | GET | FAQ 목록 |
| view | GET | FAQ 상세 |
메뉴 API (/api/menu/)
| 액션 | 메서드 | 설명 |
| list | GET | 메뉴 목록 |
방문자 API (/api/visit/)
| 액션 | 메서드 | 설명 |
| today | GET | 오늘 방문자 수 |
| stats | GET | 방문자 통계 |
설정 API (/api/config/)
| 액션 | 메서드 | 설명 |
| basic | GET | 기본 설정 |
| api | GET | API 설정 |
파일 API (/api/file/)
| 액션 | 메서드 | 설명 |
| list | GET | 파일 목록 |
| upload | POST | 파일 업로드 |
| download | GET | 파일 다운로드 |
| delete | POST | 파일 삭제 |
최신글 API (/api/latest/)
| 액션 | 메서드 | 설명 |
| list | GET | 최신글 목록 |
새글 API (/api/new/)
| 액션 | 메서드 | 설명 |
| list | GET | 새글 목록 |
| delete | POST | 새글 삭제 |
응답 형식
JSON 응답 (기본)
JSON
{ "success": true, "message": "성공", "data": { ... }, "pagination": { "current_page": 1, "total_pages": 10, "total_count": 100, "per_page": 10 } }
HTML 응답
format=html 파라미터를 추가하면 HTMX에서 바로 사용할 수 있는 HTML을 반환합니다.
Plain Text
GET /api/latest/?action=list&bo_table=free&format=html
HTMX 활용 예시
최신글 위젯
HTML
<div hx-get="/api/latest/?action=list&bo_table=free&rows=5&format=html" hx-trigger="load"> 로딩 중... </div>
게시글 목록
HTML
<div id="board-list" hx-get="/api/write/?action=list&bo_table=free&format=html" hx-trigger="load"> </div> <!-- 페이지네이션 --> <button hx-get="/api/write/?action=list&bo_table=free&page=2&format=html" hx-target="#board-list"> 다음 페이지 </button>
로그인 폼
HTML
<form hx-post="/api/auth/?action=login&format=html" hx-target="#login-result"> <input type="text" name="mb_id" placeholder="아이디"> <input type="password" name="mb_password" placeholder="비밀번호"> <button type="submit">로그인</button> </form> <div id="login-result"></div>
관리자 기능
관리자 페이지에서 API를 관리할 수 있습니다:
•API 설정: API 활성화, 로그, 요청 제한, CORS, 인증 설정
•API 목록: 각 API 엔드포인트 활성화/비활성화
•API 로그: API 호출 로그 조회
•API 키 관리: API 키 발급 및 관리
•API 테스트: API 요청 테스트
•API 문서: API 문서 조회
추천
0
0
댓글 전체

좋은 자료 감사합니다.

감사 합니다.

오! 감사합니다~ 함 써봐야겠어요