Eagle Http
Um cliente HTTP simples e configurável para Flutter, construído sobre o pacote dio.
Funcionalidades
- Realiza requisições HTTP (GET, POST, PUT, DELETE, etc.).
- Configuração base (URL base, headers padrões).
- Tratamento de erros simplificado com
EagleError. - Interceptors (Exemplo:
EagleApiInterceptorincluído). - Respostas estruturadas com
EagleResponse.
Instalação
Adicione eagle_http ao seu arquivo pubspec.yaml:
dependencies:
eagle_http: ^2.2.1 # Use a versão mais recente
Então, execute flutter pub get.
Como Usar
Importe o pacote:
import 'package:eagle_http/eagle_http.dart';
Crie uma instância do EagleHttp:
// Configure a URL base da sua API
final eagleClient = EagleHttp(
baseUrl: 'https://api.example.com',
headers: {'Authorization': 'Bearer SEU_TOKEN'}, // Headers padrões (opcional)
// customError: (DioException error) { // Tratamento de erro customizado (opcional)
// // Lógica para tratar erros específicos do Dio
// print('Erro customizado: ${error.message}');
// // Retorne ou lance um EagleError customizado se necessário
// return EagleError(type: EagleErrorType.common, error: 'Erro customizado');
// }
);
Faça uma requisição (exemplo GET):
Future<void> fetchData() async {
try {
final response = await eagleClient.request(
'/users', // Caminho do endpoint
method: EagleHttpMethod.get, // Método HTTP
// options: EagleRequest( // Opções adicionais (opcional)
// queryParameters: {'page': 1, 'limit': 10},
// // body: {'name': 'John Doe'}, // Para POST/PUT
// ),
);
if (response != null) {
print('Status Code: ${response.statusCode}');
print('Data: ${response.data}');
// Processar os dados da resposta
}
} on EagleError catch (e) {
print('Erro EagleHttp: ${e.type} - ${e.error}');
print('Detalhes: ${e.response?.data}');
// Tratar o erro específico do EagleHttp
} catch (e) {
print('Erro inesperado: $e');
// Tratar outros erros
}
}
Métodos HTTP
Use o enum EagleHttpMethod para especificar o método:
EagleHttpMethod.getEagleHttpMethod.postEagleHttpMethod.putEagleHttpMethod.deleteEagleHttpMethod.patchEagleHttpMethod.headEagleHttpMethod.options
Tratamento de Erros
O pacote lança EagleError para erros relacionados à requisição HTTP. Você pode capturá-lo em um bloco try-catch. Tipos de erro incluem:
EagleErrorType.connectionTimeoutEagleErrorType.response(erro genérico de resposta)EagleErrorType.serverError(status code >= 500)EagleErrorType.notFound(status code 404)EagleErrorType.cancelEagleErrorType.common(erro genérico ou customizado)
Você pode fornecer uma função customError no construtor para lidar com DioException de forma personalizada.
Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests no repositório do projeto. (Lembre-se de adicionar o link do repositório no pubspec.yaml!)