alphax_dio 1.0.0-rc.4 copy "alphax_dio: ^1.0.0-rc.4" to clipboard
alphax_dio: ^1.0.0-rc.4 copied to clipboard

Dio HttpClientAdapter compatibility boundary backed by AlphaX.

example/main.dart

import 'dart:convert';

import 'package:alphax/alphax.dart';
import 'package:alphax_dio/alphax_dio.dart';
import 'package:dio/dio.dart';

/// Keeps Dio's request API while routing the adapter through AlphaX.
Future<void> main() async {
  final alphaClient = AlphaXClient(transport: const ExampleTransport());
  final dio = Dio(BaseOptions(baseUrl: 'https://example.com'))
    ..httpClientAdapter = AlphaXDioAdapter(alphaClient);

  try {
    final response = await dio.get<String>('/health');
    print('${response.statusCode}: ${response.data}');
  } finally {
    dio.close(force: true);
  }
}

/// Provides a deterministic response so this adapter example needs no native
/// transport package or live server.
final class ExampleTransport extends AlphaXTransport {
  /// Creates the deterministic example transport.
  const ExampleTransport();

  @override
  AlphaXCapabilities get capabilities => const AlphaXCapabilities(
    http11: AlphaXSupport.supported,
    negotiatedProtocolReporting: AlphaXSupport.supported,
  );

  @override
  Future<AlphaXResponse> send(AlphaXRequest request) async => AlphaXResponse(
    statusCode: 200,
    bodyBytes: utf8.encode('Dio response through AlphaX.'),
    protocol: AlphaXProtocol.http11,
  );

  @override
  Stream<AlphaXEvent> sendStreaming(AlphaXRequest request) => const Stream<AlphaXEvent>.empty();

  @override
  Future<void> close() async {}
}
0
likes
0
points
395
downloads

Publisher

verified publisherauvanaventures.com

Weekly Downloads

Dio HttpClientAdapter compatibility boundary backed by AlphaX.

Repository (GitHub)
View/report issues

Topics

#networking #http #dio #dart

License

unknown (license)

Dependencies

alphax, dio

More

Packages that depend on alphax_dio