Files
superport/doc/API_Test_Guide.md
JiWoong Sul f08b7fec79 fix: API 응답 파싱 오류 수정 및 에러 처리 개선
주요 변경사항:
- 창고 관리 API 응답 구조와 DTO 불일치 수정
  - WarehouseLocationDto에 code, manager_phone 필드 추가
  - RemoteDataSource에서 API 응답을 DTO 구조에 맞게 변환
- 회사 관리 API 응답 파싱 오류 수정
  - CompanyResponse의 필수 필드를 nullable로 변경
  - PaginatedResponse 구조 매핑 로직 개선
- 에러 처리 및 로깅 개선
  - Service Layer에 상세 에러 로깅 추가
  - Controller에서 에러 타입별 처리
- 새로운 유틸리티 추가
  - ResponseInterceptor: API 응답 정규화
  - DebugLogger: 디버깅 도구
  - HealthCheckService: 서버 상태 확인
- 문서화
  - API 통합 테스트 가이드
  - 에러 분석 보고서
  - 리팩토링 계획서
2025-07-31 19:15:39 +09:00

2.6 KiB

API 연동 테스트 가이드

테스트 방법

1. 테스트 화면 접속

# Flutter 웹 서버 실행
flutter run -d chrome

# 앱이 실행되면 다음 경로로 이동
/test

2. 테스트 화면 사용법

테스트 화면에서는 다음과 같은 버튼들을 제공합니다:

  1. 초기 상태 확인: 서비스 주입과 토큰 상태 확인
  2. 헬스체크 테스트: API 서버 연결 확인
  3. 보호된 엔드포인트 테스트: 인증이 필요한 API 테스트
  4. 로그인 테스트: admin@superport.kr 계정으로 로그인
  5. 대시보드 테스트: 대시보드 데이터 조회 및 장비 상태 코드 확인
  6. 장비 목록 테스트: 장비 목록 조회 및 상태 코드 변환 확인
  7. 입고지 목록 테스트: 입고지 목록 조회
  8. 회사 목록 테스트: 회사 목록 조회
  9. 모든 테스트 실행: 위 테스트들을 순차적으로 실행
  10. 토큰 삭제: 저장된 인증 토큰 삭제

3. 주요 확인 사항

장비 상태 코드 변환

  • 서버에서 반환하는 상태 코드: available, inuse, maintenance, disposed
  • 클라이언트 표시 코드: I(입고), T(대여), R(수리), D(손상), E(기타)

API 응답 형식

  • 모든 API 응답은 다음 형식으로 정규화됨:
{
  "success": true,
  "data": { ... }
}

4. 문제 해결

CORS 에러 발생 시

# 프록시 서버를 통해 실행
./run_web_with_proxy.sh

인증 토큰 문제

  1. "토큰 삭제" 버튼 클릭
  2. "로그인 테스트" 재실행
  3. 다른 API 테스트 진행

장비 상태 코드 불일치

  • EquipmentStatusConverter 클래스에서 매핑 확인
  • 서버 응답 로그에서 실제 반환되는 코드 확인

5. 디버그 로그 확인

터미널에서 다음 로그들을 확인:

  • [ApiClient]: API 요청/응답 로그
  • [ResponseInterceptor]: 응답 정규화 로그
  • [AuthInterceptor]: 인증 처리 로그
  • [ApiTest]: 테스트 실행 로그

6. 예상 결과

정상 작동 시:

  1. 로그인: 성공 (토큰 발급)
  2. 대시보드: 장비 상태 분포에 I, T, R, D 등 표시
  3. 장비 목록: 상태 코드가 올바르게 변환되어 표시
  4. 입고지/회사: 정상 조회

현재 구현 상태

완료된 기능

  • 로그인 API 연동
  • 토큰 기반 인증
  • 응답 정규화 인터셉터
  • 장비 상태 코드 변환기
  • 에러 처리 인터셉터

테스트 필요 항목

  • 장비 상태 코드 변환 정확성
  • 대시보드 데이터 표시
  • 각 페이지별 API 호출 성공 여부
  • 에러 처리 적절성