PMU_PIbd32_Kamcharova_K.A/lib/utils/character_service.dart
2024-12-10 13:41:28 +04:00

40 lines
1.7 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'dart:convert';
import 'package:http/http.dart' as http;
import '../models/character.dart';
const String baseUrl = 'http://192.168.1.83:5000'; // IP-адрес вместо localhost
class CharacterService {
// Метод теперь возвращает список CharacterDTO
Future<List<CharacterDTO>> getCharacters({String search = ''}) async {
try {
// Формируем URL с параметром поиска
final uri = Uri.parse('$baseUrl/characters?search=$search');
// Выполняем HTTP-запрос
final response = await http.get(uri);
// Логирование данных для отладки
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}'); // Выводим тело ответа для анализа
// Проверяем успешный ответ от сервера
if (response.statusCode == 200) {
final List<dynamic> data = json.decode(response.body);
print('Characters received: $data'); // Печать данных
// Возвращаем список объектов CharacterDTO
return data.map((item) => CharacterDTO.fromJson(item)).toList();
} else {
// Ошибка, если сервер вернул не 200 статус
print('Error: Server responded with status ${response.statusCode}');
throw Exception('Ошибка загрузки данных с сервера');
}
} catch (e) {
// Обработка ошибок при выполнении запроса
print('Error fetching characters: $e');
throw Exception('Не удалось загрузить персонажей');
}
}
}