Eagle Http

pub version

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: EagleApiInterceptor incluí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.get
  • EagleHttpMethod.post
  • EagleHttpMethod.put
  • EagleHttpMethod.delete
  • EagleHttpMethod.patch
  • EagleHttpMethod.head
  • EagleHttpMethod.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.connectionTimeout
  • EagleErrorType.response (erro genérico de resposta)
  • EagleErrorType.serverError (status code >= 500)
  • EagleErrorType.notFound (status code 404)
  • EagleErrorType.cancel
  • EagleErrorType.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!)

Libraries

eagle_http