An extension on Dio response futures to perform validation and data transformation
Features
- Validate responses from Dio without using try/catch blocks everywhere
- Easily transform responses from Dio into your own data models
- Handles transformation errors
Usage
import 'package:dio/dio.dart';
import 'package:dio_response_validator/dio_response_validator.dart';
void main() async {
final dio = Dio();
final successResponse =
await dio.get('https://vrchat.com/api/1/config').validate(
transform: (data) => data['apiKey'],
);
// Prints the api key
printResponse(successResponse);
final failureResponse =
await dio.get('https://vrchat.com/api/2/config').validate();
// Prints a 404 error
printResponse(failureResponse);
}
void printResponse(ValidatedResponse response) {
if (response.succeeded) {
print(response.success!.data);
} else {
print(response.failure!);
}
}
Additional information
Pull requests welcome