import 'package:dio/dio.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { test('Test Zipcode API structure', () async { final dio = Dio(); dio.options.baseUrl = 'http://43.201.34.104:8080/api/v1'; try { // 먼저 로그인해서 토큰을 받자 final loginResponse = await dio.post('/auth/login', data: { 'email': 'admin@example.com', 'password': 'password123' }); final token = loginResponse.data['access_token']; dio.options.headers['Authorization'] = 'Bearer $token'; // Zipcodes API 테스트 - 검색 매개변수로 테스트 final zipcodesResponse = await dio.get('/zipcodes', queryParameters: { 'search': '서울', 'limit': 5 }); print('=== Zipcodes API 응답 구조 ==='); print('상태 코드: ${zipcodesResponse.statusCode}'); print('응답 데이터 타입: ${zipcodesResponse.data.runtimeType}'); print('응답 내용: ${zipcodesResponse.data}'); if (zipcodesResponse.data is Map) { final data = zipcodesResponse.data as Map; print('응답 키: ${data.keys.toList()}'); if (data['data'] is List && (data['data'] as List).isNotEmpty) { final firstItem = (data['data'] as List).first; print('첫 번째 우편번호 구조: $firstItem'); print('첫 번째 우편번호 키: ${firstItem.keys.toList()}'); } } } catch (e) { if (e is DioException) { print('API 에러: ${e.response?.statusCode}'); print('에러 메시지: ${e.response?.data}'); } else { print('예상치 못한 에러: $e'); } } }); }