From 44f5b134a5fe015dcfcbc15be959ddae0b000aad Mon Sep 17 00:00:00 2001 From: johngreen Date: Thu, 14 May 2026 08:18:09 +0900 Subject: [PATCH] =?UTF-8?q?fix(=ED=85=8C=EC=9D=B4=EB=B8=94=ED=83=80?= =?UTF-8?q?=EC=9E=85):=20IDX/label=20API=20payload=20key=20snake=5Fcase=20?= =?UTF-8?q?=EB=A1=9C=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 테이블 타입 관리 페이지에서 IDX 토글 / 테이블 라벨 저장이 400 에러로 조용히 실패하던 버그. 백엔드는 body.get("column_name") / get("index_type") / get("display_name") 등 snake_case 로 읽는데 프론트가 camelCase 로 보내고 있었음 (CLAUDE.md Map key snake_case 컨벤션 위반). - POST /table-management/tables/:t/indexes { columnName, indexType, action } → { column_name, index_type, action } - PUT /table-management/tables/:t/label { displayName } → { display_name } PK 는 다이얼로그 확인 흐름, NN/UQ 는 key 가 맞아 영향 없음. SUPER_ADMIN 으로 테스트 시 IDX 만 안 되던 증상 일치. Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/app/(main)/admin/systemMng/tableMngList/page.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/app/(main)/admin/systemMng/tableMngList/page.tsx b/frontend/app/(main)/admin/systemMng/tableMngList/page.tsx index cc8cb6d3..0167f4db 100644 --- a/frontend/app/(main)/admin/systemMng/tableMngList/page.tsx +++ b/frontend/app/(main)/admin/systemMng/tableMngList/page.tsx @@ -756,7 +756,7 @@ export default function TableManagementPage() { if (tableLabel !== selectedTable || tableDescription) { try { await apiClient.put(`/table-management/tables/${selectedTable}/label`, { - displayName: tableLabel, + display_name: tableLabel, description: tableDescription, }); } catch (error) { @@ -1055,8 +1055,8 @@ export default function TableManagementPage() { const action = checked ? "create" : "drop"; try { const response = await apiClient.post(`/table-management/tables/${selectedTable}/indexes`, { - columnName, - indexType, + column_name: columnName, + index_type: indexType, action, }); if (response.data.success) {