parse<T> method

  1. @override
ApiResponse<T> parse<T>(
  1. RawHttpResponse raw
)
override

解析响应 raw 原始 HTTP 响应(statusCode、data、path) 返回用户定义的 Response,必须处理所有可能的响应结构

Implementation

@override
ApiResponse<T> parse<T>(RawHttpResponse raw) {
  if (raw.data is! Map<String, dynamic>) {
    return ApiResponse<T>(
      code: -1,
      message: '响应格式错误',
      data: null,
      httpStatusCode: raw.statusCode,
    );
  }

  final data = raw.data as Map<String, dynamic>;
  return ApiResponse<T>(
    code: (data['code'] as int?) ?? -1,
    message: (data['message'] as String?) ?? '',
    data: data['data'],
    httpStatusCode: raw.statusCode,
  );
}