From 2a0ce0b50e389909f7cdc14e541a2d8101fc57b1 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Sun, 4 Jan 2026 14:50:26 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20rb8001=20=EC=9D=BC=EA=B8=B0=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20API=20=EC=97=94=EB=93=9C=ED=8F=AC=EC=9D=B8=ED=8A=B8?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=20=ED=8A=B8=EB=9F=AC=EB=B8=94=EC=8A=88?= =?UTF-8?q?=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60104_rb8001_diary_list_endpoint_추가.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 journey/troubleshooting/260104_rb8001_diary_list_endpoint_추가.md diff --git a/journey/troubleshooting/260104_rb8001_diary_list_endpoint_추가.md b/journey/troubleshooting/260104_rb8001_diary_list_endpoint_추가.md new file mode 100644 index 0000000..2066e1b --- /dev/null +++ b/journey/troubleshooting/260104_rb8001_diary_list_endpoint_추가.md @@ -0,0 +1,45 @@ +# rb8001 일기 목록 API 엔드포인트 추가 + +**날짜**: 2026-01-04 +**작성자**: Claude +**관련 파일**: `rb8001/app/router/diary_endpoint.py` + +--- + +## 문제 상황 + +- admin-dashboard에서 로빙 일기 목록 조회 시 422 Unprocessable Entity 에러 +- 에러 메시지: `date_from_datetime_parsing`, `input: "list"` +- 원인: rb8001에 `/api/diary/list` 엔드포인트 없음, 동적 경로 `/{target_date}`가 "list"를 날짜로 파싱 시도 + +## 해결 방안 + +- `diary_endpoint.py:16-42`: `/list` 엔드포인트 추가 +- 중요: `/list`를 `/{target_date}`보다 먼저 정의 (FastAPI 경로 매칭 순서) +- `get_diary_list` 함수는 `diary_repository.py`에 이미 존재 + +## 구현 완료 + +- 커밋: `2e1f034` (rb8001, 2026-01-04) +- 브라우저 테스트 완료 (ro-being.com/admin#diary) + +--- + +## 교훈 + +### FastAPI 경로 매칭 순서 +- 구체적 경로(`/list`)는 동적 경로(`/{param}`)보다 반드시 상단에 정의 +- 위반 시 동적 경로가 먼저 매칭되어 파라미터 파싱 에러 발생 +- 원칙 참조: `311_FastAPI_구조_원칙.md` + +### 마이크로서비스 간 API 호환성 검증 +- 프록시 API(admin-dashboard) 수정 시 말단 서비스(rb8001) 엔드포인트 존재 여부 사전 확인 필수 +- `curl http://서비스:포트/경로`로 직접 호출 테스트 후 프록시 구현 + +--- + +## 참고 + +- [Admin Dashboard 리팩토링](./251225_admin_dashboard_code_refactoring.md) +- [로빙 일기 시스템 구현](./251223_로빙_일기_시스템_구현_완료.md) +