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) +