APIRequest constructor
APIRequest(
- APIRequestMethod method,
- String path, {
- String? protocol,
- Map<
String, dynamic> ? parameters, - Map<
String, dynamic> ? headers, - dynamic payload,
- Object? payloadMimeType,
- String? payloadFileExtension,
- String? sessionID,
- bool newSession = false,
- APICredential? credential,
- String? scheme,
- APIRequesterSource? requesterSource,
- String? requesterAddress,
- bool keepAlive = false,
- DateTime? time,
- Duration? parsingDuration,
- Uri? requestedUri,
- Object? originalRequest,
- Map<
String, APIMetric> ? metrics,
Implementation
APIRequest(this.method, this.path,
{this.protocol,
Map<String, dynamic>? parameters,
Map<String, dynamic>? headers,
this.payload,
Object? payloadMimeType,
this.payloadFileExtension,
this.sessionID,
this.newSession = false,
this.credential,
String? scheme,
APIRequesterSource? requesterSource,
String? requesterAddress,
this.keepAlive = false,
DateTime? time,
this.parsingDuration,
Uri? requestedUri,
this.originalRequest,
super.metrics})
: parameters = parameters ?? <String, dynamic>{},
_payloadMimeType = APIPayload.resolveMimeType(payloadMimeType),
headers = headers ?? <String, dynamic>{},
_pathParts = _buildPathParts(path),
scheme = scheme?.trim(),
originalCredential = credential,
requesterSource = _resolveRestSource(requesterAddress),
_requesterAddress = requesterAddress,
requestedUri = requestedUri ??
Uri(
host: requesterSource == APIRequesterSource.local
? 'localhost'
: null,
path: path,
queryParameters: parameters?.map((key, value) => MapEntry(
key,
value is List
? value.map((e) => '$e').toList()
: '$value'))),
time = time ?? DateTime.now();