requestJson<S, T> method
Future<T>
requestJson<
S, T>( - String method,
- String path, {
- int? statusCode,
- void fail(
- Response response
)?,
- Map<String, dynamic>? params,
- JSONConverter<S, T?>? convert,
- dynamic body,
- String? preview,
})
Implementation
Future<T> requestJson<S, T>(
String method,
String path, {
int? statusCode,
void Function(http.Response response)? fail,
Map<String, String>? headers,
Map<String, dynamic>? params,
JSONConverter<S, T?>? convert,
dynamic body,
String? preview,
}) async {
convert ??= (input) => input as T?;
headers ??= {};
if (preview != null) {
headers['Accept'] = preview;
}
headers.putIfAbsent('Accept', () => v3ApiMimeType);
headers.putIfAbsent(versionHeader, () => version);
final response = await request(
method,
path,
headers: headers,
params: params,
body: body,
statusCode: statusCode,
fail: fail,
);
final json = jsonDecode(response.body);
final returnValue = convert(json) as T;
_applyExpandos(returnValue, response);
return returnValue;
}