주요 변경사항: - 창고 관리 API 응답 구조와 DTO 불일치 수정 - WarehouseLocationDto에 code, manager_phone 필드 추가 - RemoteDataSource에서 API 응답을 DTO 구조에 맞게 변환 - 회사 관리 API 응답 파싱 오류 수정 - CompanyResponse의 필수 필드를 nullable로 변경 - PaginatedResponse 구조 매핑 로직 개선 - 에러 처리 및 로깅 개선 - Service Layer에 상세 에러 로깅 추가 - Controller에서 에러 타입별 처리 - 새로운 유틸리티 추가 - ResponseInterceptor: API 응답 정규화 - DebugLogger: 디버깅 도구 - HealthCheckService: 서버 상태 확인 - 문서화 - API 통합 테스트 가이드 - 에러 분석 보고서 - 리팩토링 계획서
90 lines
2.6 KiB
Markdown
90 lines
2.6 KiB
Markdown
# API 연동 테스트 가이드
|
|
|
|
## 테스트 방법
|
|
|
|
### 1. 테스트 화면 접속
|
|
```bash
|
|
# 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 응답은 다음 형식으로 정규화됨:
|
|
```json
|
|
{
|
|
"success": true,
|
|
"data": { ... }
|
|
}
|
|
```
|
|
|
|
### 4. 문제 해결
|
|
|
|
#### CORS 에러 발생 시
|
|
```bash
|
|
# 프록시 서버를 통해 실행
|
|
./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 호출 성공 여부
|
|
- 에러 처리 적절성 |