그누보드에 대한 RESTFUL API Doc #2 > 앱개발

앱개발

그누보드에 대한 RESTFUL API Doc #2 정보

그누보드에 대한 RESTFUL API Doc #2

본문

이전 글 https://sir.kr/so_app/1914 에 이어서 swagger doc도 배우는데 오래 걸리네요.

 

그래서 그냥 만들어 봤습니다.  링크는 님을 참조 했습니다.

 

그누보드

g5_auth

회원별 관리메뉴 권한 설정

g5_autosave

글작성시 임시(자동)저장 테이블

g5_board

게시판 설정 정보가 들어 있는 테이블

GET /boards
~~GET /board[s]/settings~~

g5_board_file

게시글 첨부파일 정보- 크기/경로/받기횟수

GET /board/[bo_table]/[wr_id]/files

g5_board_good

게시글 추천/비추천 정보 기록

GET /board/[bo_table]/[wr_id]/good

g5_board_new

게시글 새글/댓글 기록

GET /boards/new_articles
GET /boards/new_comments

g5_cert_history

인증내역 테이블

g5_config

그누보드 기본 설정

GET /configs

g5_content

콘텐츠(내용관리) 테이블

GET /contents
GET /contents/[co_id]

g5_faq

자주하는 질문(faq) 내용 테이블

GET /faqs
GET /faqs/[fa_id]

g5_faq_master

자주하는 질문(faq) 그룹 테이블

GET /faqsgroup/[fm_id]

g5_group

게시판 그룹 정보

GET /groups

g5_group_member

게시판 그룹 별 접근 허용된 회원

g5_login

IP별 로그인 정보 기록

g5_mail

관리자화면에서 보낸 메일 정보 저장

g5_member

회원정보

GET /members
GET /member/[mb_id]

g5_member_social_profiles

g5_memo

쪽지 기록

g5_menu

메뉴 설정 테이블

GET /menus

g5_new_win

팝업창 정보 테이블

g5_point

회원에게 부여된 포인트 내역

GET /member/[mb_id]/points

g5_poll

투표/설문조사 질문, 항목, 투표수 저장

g5_poll_etc

투표/설문조사 기타의견 저장

g5_popular

검색어 기록 저장하여 인기검색어에 이용

g5_qa_config

1:1문의 설정 정보

g5_qa_content

1:1문의 테이블

g5_scrap

게시글 스크랩 저장

GET /member/[mb_id]/scraps

g5_uniqid

유니크 키 테이블

g5_visit

방문자 정보 기록

g5_visit_sum

일별 방문자 합계 정보

g5_write_[bo_table]

게시판 당 하나씩 생성되어 글과 댓글이 저장되는 테이블

GET /board/[bo_table]
GET /board/[bo_table]/[wr_id]
GET /board/[bo_table]/[wr_id]/good
GET /board/[bo_table]/[wr_id]/files
GET /board/[bo_table]/[wr_id]/comments
GET /board/[bo_table]/[wr_id]/comment/[wr_id]
GET /board/[bo_table]/[wr_id]/comment/[wr_id]/good
GET /board/[bo_table]/[wr_id]/comment/[wr_id]/files
공감
5

댓글 12개

잘 모르는 필드도 있고해서,  우선 생각나는 것만(GET만) 적어 봤습니다.  혹시에 앱 또는 RESTFul에 관심이 있으신분은 댓글로 필요한 것 또는 고려해야 될 API 를 알려주세요.


GET /board/[bo_table]/group 하면 해당 게시판의 그룹을 읽어 오는 것이죠
GET /board/[bo_table]/group/members 하면 게시판 그룹의 그룹멤버를 읽어 오는 것이죠.

RESTFul의 단점이 쓸데 없이 많은 트랙픽을 유발한다고 합니다.

그래서 요즘은 Graphql이란 것을..

{ board: [bo_table] {
    id,
    group,
    group_member
}

대략 필요한 필드를 보내면 한번에 정리해서 보내주는 식입니다.
우왕 대단하십니다...

일단 눈에 안보이는건 쪽지나 스크랩 정도인거 같네요
나중에 시간나면 좀 더 꼼꼼히 살펴보겠습니다.

그리고 관리자권한으로 봐야할것들은 토큰체크 되는건가요?? ㅋ ...

덧) 포인트도욤
링크에 업데이트 하고 있습니다.

JWT 토큰 발행하고 Postman Authorization에 Bearer토큰에 넣어서 체크됩니다.



GET /member/[mb_id]/autosave
GET /member/[mb_id]/points
GET /member/[mb_id]/scraps
GET /member/[mb_id]/memo/[me_recev_mb_id]
GET /member/[mb_id]/memo/[me_send_mb_id]

그리고 확장자도 따로 읽어 볼까 합니다.
GET /member/[mb_id]/exts
GET /member/[mb_id]/ext/[mb_?]

프런트엔드단과 어느정도 맞춰서 API가 규정이 되면 좋은데,

실력이 양쪽을 왔다갔다할 정도는 안되서..

backend만들면 잊어버리고, 다시 프런트엔드로 ㅠㅠ
저도 실력은 안됩니다.  그누보드에 대햇 잘 모르지만,  프런트엔드단에서 이런것이 필요하다고 하면 백엔드에서 미리 고려해 놓는다는 것이죠.  그누보드 게시판 프로그램할때 필요한 부분 뭐가 있는지 체크해 주세요
해당 기준으로 API를 제작중이신건가요?
Vue 그누보드 백앤드가 단순히 동작 가능만 생각해서 만들었다보니
아예 처음부터 다시 구성할 생각인데
제 임의의 규칙보다는
어느정도 알려져있는대로 문서대로 제작하는것이 나은거 같아 괜찮으시다면 게시글을 어느정도 참조하려 합니다
지금까지 공부한 것을 기반으로(이론적으로) Doc을 먼저 만들어 놓고. (그래서 버전0.2) 조금씩 구현해 볼려고 합니다.

워낙 고려해야 될 것도 많고, 그누보드쪽도 아직 잘 모르다 보니,

조금씩 구현해 가면서,  서로 업그레이드 해 가면 좋을 것 같습니다.

능력이 안되니,  백엔드와 프런트엔드 모두 해 가면서 이쪽에서 필요한 것 저쪽에서 해 주고,  저쪽에서 구현하기 힘든것은 아래쪽에서 해 주면 좋은데..  그게 힘드네요.

그래서,  이렇게라도 Document를 해 놓으면 모두가 도움이 되지 않을까요? 

냑에서도 6.0나오는 시점에 RESTful을 지원한다고 하면,  이것도 하나의 기준이 될 수도 있고,

기능적으로 큰 문제가 없다고 하면,  굳이 다르게 갈 필요도 없겠죠..

프런트단 구현해 가면서 필요한 기능이 있으면,  같이 토의해 가면서 만들었으면 합니다.
참고로 현재는 노드로 보고 있습니다.  서버가 웹호스팅으로 안되는 단점은 있지만, 
이 언어가 조금 편하네요..

이게 어느정도 구현되면,  웹호스팅에서 쓸수 있게,  예전에 했던 Slim을 한번더 도전해 보고 싶습니다.

https://www.apachezone.com/member_pds/18
저는 PHP로 개발하려 합니다.
우선 웹호스팅 사용 목적이 크기 때문이고
php-jwt, php router 중 하나를 사용하고 언젠가 mysqli도 지원이 종료될 함수이고 sql injection이나 보안쪽에서 pdo가 낫다고해서,  pdo쪽으로 해서 개발 중입니다.
오늘 짬이 잠깐 나서 3~4시간정도 제작했는데 로그인 부분이랑 jwt 발행 부분을 연결 시켰고 위 글에 있는 주소 가이드라인대로 한 30~40%정도 제작한것 같네요.

vue로 바꾸면서 그냥 common.php를 활용해서 기존 그누보드 함수를 최대한 활용하려 했는데
그누보드의 db구조가 API화 하기 어려운것도 있고, 소스분석도 귀찮아지다보니 결국 코드가 난잡해지더군요.

그누보드의 경우 게시판을 불러 올 때 게시판 설정(config, board) 등 여러가지 참조하는 테이블이 많은데 게시판 불러올때마다 해당 값을 불러오는것도 비효율적이라 필요할 때 보안상 클라이언트에 값을 저장해도 되는 부분과 백앤드 쪽에서 무조건 처리해야하는 부분 등 구분 지어서 깔끔하게 개발하려 합니다.
PHP는 아무리 봐도 어려운 것 같아서..  필요한 부분(변경해야 될 부분) 있으면 알려주세요.

Document에 입력 출력에 대한 정보도 어느정도 넣어 두면, 프로그램하는 사람입장에서는 편하지 않을 까요.

1차로는 nodejs로 구현해가면서 문서화하고.  최종적으로는 아예 DB구조를 뜯어 고쳐가면서 그누보드도 수정했으면 하는 꿈만 가지고 있습니다.
전체 756 |RSS
앱개발 내용 검색

회원로그인

진행중 포인트경매

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