= 메뉴 관리 == 개요 메뉴와 하위 Page 및 API 목록을 관리하는 화면이다. + NOTE: 신규 메뉴를 등록 하거나 메뉴정보를 수정 또는 삭제할 경우 콜백함수를 통해서 메뉴관련 된 모든 캐시가 초기화 된다. == UI Design & Function === 메뉴 관리 메뉴를 등록, 수정 및 관리 할 수 있는 메뉴 트리를 제공한다. image::menuManagement_01.png[] * 기능 설명 . 메뉴 트리 목록 조회 . 메뉴 상세정보 조회 : 트리에서 메뉴 선택시 메뉴 상세정보를 조회 한다. . 메뉴 등록 : 현재 선택된 메뉴 하위에 새로운 메뉴를 추가 한다. . 메뉴 수정 / 삭제 : 현재 선택된 메뉴를 수정 또는 삭제 한다. . 메뉴 이동 : 트리에서 Drag&Drop 기능으로 선택한 메뉴를 이동할 수 있다. === 페이지 관리 image::menuManagement_02.png[] * 기능 설명 . Page 목록 조회 : 메뉴 트리에서 메뉴 선택 시 해당 메뉴에 맵핑되어 있는 페이지 목록 조회. . Page 등록, 수정, 삭제 NOTE: 권한 타입은 READ, UPDATE, EXECUTE, DOWNLOAD 로 구성되어 있으며 사용자가 가지고 있는 해당 메뉴에 대한 권한 종류로 UI의 권한 제어를 하고 있다. + 자세한 내용은 <<_화면별_권한처리,화면별 권한처리>> 매뉴얼을 참고한다. === API 관리 image::menuManagement_03.png[] * 기능 설명 . API 목록 조회 . API 등록 . API 수정 . API 삭제 === SDL 게시판 Page, API 프리셋 추가 image::menuManagement_04.png[] * 기능 설명 . 게시판 선택 및 Page, API 자동 추가 == API & Service === API MenuController.java + Menu와 해당 메뉴에 Mapping 되어 있는 Page, API의 등록, 수정, 삭제 및 조회하는 API를 포함하고 있다. * 주요 기능 API 목록 . 메뉴 트리 목록 조회 : GET /auth/menus/menu-mgmt/level . 메뉴 상세정보 조회 : GET /auth/menus/{menuId} . 메뉴 등록 : POST /auth/menus . 메뉴 수정 : PUT /auth/menus . 메뉴 삭제 : DELETE /auth/menus/{menuId} . 메뉴 이동 : PUT /auth/menus/move-menu . Page 목록 조회 : GET /auth/menus/{menuId}/pages . Page 등록 : POST /auth/menus/{menuId}/pages . Page 수정 : PUT /auth/menus/{menuId}/pages . Page 삭제 : DELETE /auth/menus/{menuId}/pages . API 목록 조회 : GET /auth/menus/{menuId}/apis . API 등록 : POST /auth/menus/{menuId}/apis . API 수정 : PUT /auth/menus/{menuId}/apis . API 삭제 : DELETE /auth/menus/{menuId}/apis == Entity Table & SQL === Entity Table * TN_CF_SYS_RESOURCE : 리소스 * TN_CF_SYS_RESOURCE_MAPP : 리소스 맵핑 * TN_CF_MENU : 메뉴 * TN_CF_PAGE : Page * TN_CF_API : API === SQL . 메뉴 트리 목록 조회 [source,xml] ---- SELECT M.MENU_ID, M.LABEL, M.MENU_LEVEL, M.MENU_SEQUENCE, --생략-- ---- [start=3] . 메뉴 등록 [source,xml] ---- INSERT INTO (MENU_ID, LABEL, --생략-- ---- [start=4] . 메뉴 수정 [source,xml] ---- UPDATE SET LABEL = #{label}, --생략-- ---- [start=5] . 메뉴 삭제 [source,xml] ---- UPDATE SET USE_YN = 0, DELETE_YN = 1 --생략-- ---- [start=6] . 메뉴 이동 [source,xml] ---- UPDATE SET UPPER_SYS_RESOURCE_ID = #{parentMenuId} --생략-- ---- [source,xml] ---- UPDATE SET MENU_SEQUENCE = #{moveToMenuSequence} --생략-- ---- [start=7] . Page 목록 조회 [source,xml] ---- SELECT A.API_ID, SA.AUTHORIZATION_ID, A.API_NAME, A.API_URL, A.HTTP_METHOD, A.SERVER_ID, A.USE_YN --생략-- ---- [start=12] . API 등록 [source,xml] ---- INSERT INTO (API_ID, API_NAME, API_URL, API_PATH, API_PARAMETERS, HTTP_METHOD, SERVER_ID, USE_YN, DELETE_YN) --생략-- ---- [start=13] . API 수정 [source,xml] ---- UPDATE SET API_NAME = #{apiName}, --생략-- ---- [start=14] . API 삭제 [source,xml] ---- UPDATE SET USE_YN = 0, --생략-- ----