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 { Future> 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 data = json.decode(response.body); print('Characters received: $data'); // Печать данных // Возвращаем список объектов Character return data.map((item) => Character.fromJson(item)).toList(); } else { // Ошибка, если сервер вернул не 200 статус print('Error: Server responded with status ${response.statusCode}'); throw Exception('Ошибка загрузки данных с сервера'); } } catch (e) { // Обработка ошибок при выполнении запроса print('Error fetching characters: $e'); throw Exception('Не удалось загрузить персонажей'); } } }