starwork_flutter/lib/api/api_response.dart

52 lines
1.1 KiB
Dart

class ApiResponse<T> {
final bool success;
final T? data;
final String? message;
final int? statusCode;
// 构造函数
const ApiResponse({
required this.success,
this.data,
this.message,
this.statusCode,
});
// 成功响应
factory ApiResponse.success(T data,
{String message = 'Success', int? statusCode}) {
return ApiResponse<T>(
success: true,
data: data,
message: message,
statusCode: statusCode,
);
}
// 失败响应
factory ApiResponse.error(String message, {int? statusCode, T? data}) {
return ApiResponse<T>(
success: false,
message: message,
statusCode: statusCode,
data: data, // 可选:返回部分数据(如错误时的缓存数据)
);
}
// 加载中(可选)
factory ApiResponse.loading() {
return ApiResponse<T>(
success: false,
message: 'Loading...',
);
}
@override
List<Object?> get props => [success, data, message, statusCode];
@override
String toString() {
return 'ApiResponse(success: $success, message: $message, data: $data, statusCode: $statusCode)';
}
}