putMethodResponse method
Adds a MethodResponse to an existing Method resource.
May throw UnauthorizedException. May throw NotFoundException. May throw ConflictException. May throw LimitExceededException. May throw BadRequestException. May throw TooManyRequestsException.
Parameter httpMethod
:
Required
The HTTP verb of the Method resource.
Parameter resourceId
:
Required
The Resource identifier for the Method resource.
Parameter restApiId
:
Required
The string identifier of the associated RestApi.
Parameter statusCode
:
Required
The method response's status code.
Parameter responseModels
:
Specifies the Model resources used for the response's content type.
Response models are represented as a key/value map, with a content type as
the key and a Model name as the value.
Parameter responseParameters
:
A key-value map specifying required or optional response parameters that
API Gateway can send back to the caller. A key defines a method response
header name and the associated value is a Boolean flag indicating whether
the method response parameter is required or not. The method response
header names must match the pattern of
method.response.header.{name}
, where name
is a
valid and unique header name. The response parameter names defined here
are available in the integration response to be mapped from an integration
response header expressed in
integration.response.header.{name}
, a static value enclosed
within a pair of single quotes (e.g., 'application/json'
), or
a JSON expression from the back-end response payload in the form of
integration.response.body.{JSON-expression}
, where
JSON-expression
is a valid JSON expression without the
$
prefix.)
Implementation
Future<MethodResponse> putMethodResponse({
required String httpMethod,
required String resourceId,
required String restApiId,
required String statusCode,
Map<String, String>? responseModels,
Map<String, bool>? responseParameters,
}) async {
ArgumentError.checkNotNull(httpMethod, 'httpMethod');
ArgumentError.checkNotNull(resourceId, 'resourceId');
ArgumentError.checkNotNull(restApiId, 'restApiId');
ArgumentError.checkNotNull(statusCode, 'statusCode');
final $payload = <String, dynamic>{
if (responseModels != null) 'responseModels': responseModels,
if (responseParameters != null) 'responseParameters': responseParameters,
};
final response = await _protocol.send(
payload: $payload,
method: 'PUT',
requestUri:
'/restapis/${Uri.encodeComponent(restApiId)}/resources/${Uri.encodeComponent(resourceId)}/methods/${Uri.encodeComponent(httpMethod)}/responses/${Uri.encodeComponent(statusCode)}',
exceptionFnMap: _exceptionFns,
);
return MethodResponse.fromJson(response);
}