Skip to content

feat(api): 세션 관리 REST API 엔드포인트 4개 구현#80

Open
kangsiwoo wants to merge 1 commit intomainfrom
feature/session-rest-api
Open

feat(api): 세션 관리 REST API 엔드포인트 4개 구현#80
kangsiwoo wants to merge 1 commit intomainfrom
feature/session-rest-api

Conversation

@kangsiwoo
Copy link
Copy Markdown
Owner

Summary

  • GET /api/sessions — 활성 세션 목록 조회
  • GET /api/sessions/{user_id} — 특정 유저 세션 상세 조회 (message_limit 쿼리 파라미터 지원)
  • DELETE /api/sessions/{user_id} — 특정 유저 세션 삭제
  • POST /api/sessions/cleanup — 오래된 세션 일괄 정리 (hours 파라미터)
  • API 테스트 11개 추가

Closes #73

Test plan

  • 세션 목록 조회 (빈 상태, 다중 세션, 필드 검증)
  • 세션 상세 조회 (정상, 404, message_limit)
  • 세션 삭제 (정상, 404)
  • 세션 정리 (기본값, 커스텀 hours)
  • 전체 테스트 117개 통과 (회귀 없음)

🤖 Generated with Claude Code

- GET /api/sessions — list active sessions
- GET /api/sessions/{user_id} — get session detail with messages
- DELETE /api/sessions/{user_id} — delete a session
- POST /api/sessions/cleanup — purge old sessions

Closes #73

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@kangsiwoo
Copy link
Copy Markdown
Owner Author

세션 설계 변경 필요

현재 구현은 유저당 1개 세션 (user_id 키) 구조이지만, 실제 설계 의도는 다음과 같습니다:

  • 유저 콘솔 (bot-console-alice) → 세션 1개
  • 프로젝트 채널 (my-app / 프론트-일반 등) → 채널마다 세션 1개
  • 같은 유저가 여러 세션을 가질 수 있음

영향 범위

항목 현재 변경 필요
ConversationSession user_id만 보유 + channel_id 필드 추가
SessionManager._sessions user_id channel_id 기반
REST API 경로 /api/sessions/{user_id} /api/sessions/{session_id}
to_dict() 출력 user_id + channel_id 포함

조치

이 PR의 엔드포인트 경로와 조회 로직이 채널별 다중 세션 구조에 맞게 수정될 예정입니다. 관련 이슈(#71~#77) 및 플랜을 함께 업데이트합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Session-API] feat: 세션 관리 REST API 엔드포인트 4개 구현

1 participant