service_client 0.1.1 copy "service_client: ^0.1.1" to clipboard
service_client: ^0.1.1 copied to clipboard

An http client interface.

Service Client #

An HTTP client interface for Dart applications.

Features #

  • Flexible HTTP client with support for authentication
  • Token-based authentication with storage adapters
  • Configurable base URL, headers, and timeout
  • Support for both file-based and memory-based token storage
  • Simple request/response handling

Installation #

Add this to your pubspec.yaml:

dependencies:
  service_client: ^0.1.0

Usage #

Here's a simple example using the JSONPlaceholder public API:

import 'package:service_client/service_client.dart';

class JsonPlaceholderService {
  static final ServiceClientConfig _config = ServiceClientConfig(
    baseUrl: Uri.parse('https://jsonplaceholder.typicode.com'),
    defaultHeaders: {
      'Content-Type': 'application/json',
    },
    timeout: const Duration(seconds: 30),
    auth: false,
  );

  static ServiceClient? _client;
  static ServiceClient get _service {
    _client ??= HttpServiceClient(_config);
    return _client!;
  }

  /// Fetches a todo item by its ID
  static Future<Map<String, dynamic>> getTodo(int id) async {
    final request = ServiceRequest.http(
      method: 'GET',
      endpoint: 'todos/$id',
      errorMessage: 'Failed to fetch TODO from JSONPlaceholder',
    );

    final response = await _service.send(request);

    if (response.statusCode >= 200 && response.statusCode < 300) {
      return response.data as Map<String, dynamic>;
    }

    throw Exception(
      'JSONPlaceholder error: ${response.statusCode} - ${response.rawBody}',
    );
  }
}

void main() async {
  print('Calling JSONPlaceholder public API...\n');
  final todo = await JsonPlaceholderService.getTodo(1);
  print('Received TODO item:');
  print(todo);
}

License #

See LICENSE file for details.

0
likes
150
points
167
downloads

Publisher

verified publisherccisne.dev

Weekly Downloads

An http client interface.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

cryptography, http, path

More

Packages that depend on service_client