testGetRequest static method

Future<void> testGetRequest()

Test GET request to a public API

Implementation

static Future<void> testGetRequest() async {
  try {
    // Setup environment for JSONPlaceholder API (public test API)
    GtdLogger.i('Setting up GET request environment...');
    final environment = BaseEnvironment(
      baseUrl: 'jsonplaceholder.typicode.com',
      platformPath: '',
      headers: {'Accept': 'application/json'},
    );

    // Create an endpoint for posts
    final endpoint = GtdEndpoint(env: environment, path: 'posts');

    // Configure request with query parameters
    final networkService = GtdNetworkService.shared;
    networkService.request = GTDNetworkRequest(
      type: GtdMethod.get,
      enpoint: endpoint,
      queryParams: {'userId': 1},
    );

    // Execute request
    GtdLogger.i('Executing GET request...');
    final response = await networkService.execute();

    // Process response
    GtdLogger.i('GET request successful: ${response.statusCode}');
    GtdLogger.i('Number of items: ${response.data.length}');
    GtdLogger.i('First item title: ${response.data[0]['title']}');

    return response.data;
  } catch (e) {
    // All errors from networkService are GtdError
    final gtdError = e as GtdError;
    GtdLogger.e('GET request failed: ${gtdError.message}');
    GtdLogger.e('Error code: ${gtdError.errorCode}');
    GtdLogger.e('Status code: ${gtdError.statusCode}');

    rethrow;
  }
}