Method class
Represents a client-facing interface by which the client calls the API to access back-end resources. A Method resource is integrated with an Integration resource. Both consist of a request and one or more responses. The method request takes the client input that is passed to the back end through the integration request. A method response returns the output from the back end to the client through an integration response. A method request is embodied in a Method resource, whereas an integration request is embodied in an Integration resource. On the other hand, a method response is represented by a MethodResponse resource, whereas an integration response is represented by an IntegrationResponse resource.
Example: Retrive the GET method on a specified resource
Request
The following example request retrieves the information about the GET method on an API resource (3kzxbg5sa2
) of an API
(fugvjdxtri
).
GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET
HTTP/1.1 Content-Type: application/json Host:
apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
Authorization: AWS4-HMAC-SHA256
Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request,
SignedHeaders=content-type;host;x-amz-date,
Signature={sig4_hash}
Response
The successful response returns a200 OK
status code and a
payload similar to the following:
{ "_links": { "curies": [ { "href":
"https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html",
"name": "integration", "templated": true }, { "href":
"https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html",
"name": "integrationresponse", "templated": true }, { "href":
"https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html",
"name": "method", "templated": true }, { "href":
"https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html",
"name": "methodresponse", "templated": true } ], "self": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET", "name": "GET",
"title": "GET" }, "integration:put": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" },
"method:delete": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" },
"method:integration": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" },
"method:responses": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
"name": "200", "title": "200" }, "method:update": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" },
"methodresponse:put": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}",
"templated": true } }, "apiKeyRequired": true, "authorizationType": "NONE",
"httpMethod": "GET", "_embedded": { "method:integration": { "_links": {
"self": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" },
"integration:delete": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" },
"integration:responses": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
"name": "200", "title": "200" }, "integration:update": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" },
"integrationresponse:put": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}",
"templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
"3kzxbg5sa2", "credentials":
"arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST",
"passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": {
"integration.request.header.Content-Type": "'application/x-amz-json-1.1'" },
"requestTemplates": { "application/json": "{\n}" }, "type": "AWS", "uri":
"arn:aws:apigateway:us-east-1:kinesis:action/ListStreams", "_embedded": {
"integration:responses": { "_links": { "self": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
"name": "200", "title": "200" }, "integrationresponse:delete": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
}, "integrationresponse:update": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
} }, "responseParameters": { "method.response.header.Content-Type":
"'application/xml'" }, "responseTemplates": { "application/json":
"$util.urlDecode(\"%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E\")"
}, "statusCode": "200" } } }, "method:responses": { "_links": { "self": {
"href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
"name": "200", "title": "200" }, "methodresponse:delete": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" },
"methodresponse:update": { "href":
"/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" } },
"responseModels": { "application/json": "Empty" }, "responseParameters": {
"method.response.header.Content-Type": false }, "statusCode": "200" } }
}
In the example above, the response template for the 200 OK
response maps the JSON output from the ListStreams
action in
the back end to an XML output. The mapping template is URL-encoded as
%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E
and the output is decoded using the $util.urlDecode()
helper function.
Constructors
-
Method({bool? apiKeyRequired, List<
String> ? authorizationScopes, String? authorizationType, String? authorizerId, String? httpMethod, Integration? methodIntegration, Map<String, MethodResponse> ? methodResponses, String? operationName, Map<String, String> ? requestModels, Map<String, bool> ? requestParameters, String? requestValidatorId}) -
Method.fromJson(Map<
String, dynamic> json) -
factory
Properties
- apiKeyRequired → bool?
-
A boolean flag specifying whether a valid ApiKey is required to
invoke this method.
final
-
A list of authorization scopes configured on the method. The scopes are used
with a
COGNITO_USER_POOLS
authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.final -
The method's authorization type. Valid values are
NONE
for open access,AWS_IAM
for using AWS IAM permissions,CUSTOM
for using a custom authorizer, orCOGNITO_USER_POOLS
for using a Cognito user pool.final -
The identifier of an Authorizer to use on this method. The
authorizationType
must beCUSTOM
.final - hashCode → int
-
The hash code for this object.
no setterinherited
- httpMethod → String?
-
The method's HTTP verb.
final
- methodIntegration → Integration?
-
Gets the method's integration responsible for passing the client-submitted
request to the back end and performing necessary transformations to make the
request compliant with the back end.
final
-
methodResponses
→ Map<
String, MethodResponse> ? -
Gets a method response associated with a given HTTP status code.
final
- operationName → String?
-
A human-friendly operation identifier for the method. For example, you can
assign the
operationName
ofListPets
for theGET /pets
method in thePetStore
example.final -
requestModels
→ Map<
String, String> ? -
A key-value map specifying data schemas, represented by Model
resources, (as the mapped value) of the request payloads of given content
types (as the mapping key).
final
-
requestParameters
→ Map<
String, bool> ? -
A key-value map defining required or optional method request parameters that
can be accepted by API Gateway. A key is a method request parameter name
matching the pattern of
method.request.{location}.{name}
, wherelocation
isquerystring
,path
, orheader
andname
is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true
) or optional (false
). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates.final - requestValidatorId → String?
-
The identifier of a RequestValidator for request validation.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited