importRestApi method
A feature of the API Gateway control service for creating a new API from an external API definition file.
May throw UnauthorizedException. May throw LimitExceededException. May throw BadRequestException. May throw TooManyRequestsException. May throw ConflictException.
Parameter body
:
Required
The POST request body containing external API definitions.
Currently, only OpenAPI definition JSON/YAML files are supported. The
maximum size of the API definition file is 6MB.
Parameter failOnWarnings
:
A query parameter to indicate whether to rollback the API creation
(true
) or not (false
) when a warning is
encountered. The default value is false
.
Parameter parameters
:
A key-value map of context-specific query string parameters specifying the
behavior of different API importing operations. The following shows
operation-specific parameters and their supported values.
To exclude DocumentationParts from the import, set
parameters
as ignore=documentation
.
To configure the endpoint type, set parameters
as
endpointConfigurationTypes=EDGE
,
endpointConfigurationTypes=REGIONAL
, or
endpointConfigurationTypes=PRIVATE
. The default endpoint type
is EDGE
.
To handle imported basepath
, set parameters
as
basepath=ignore
, basepath=prepend
or
basepath=split
.
For example, the AWS CLI command to exclude documentation from the imported API is:
aws apigateway import-rest-api --parameters
ignore=documentation --body
'file:///path/to/imported-api-body.json'
The AWS CLI command to set the regional endpoint on the imported API is:
aws apigateway import-rest-api --parameters
endpointConfigurationTypes=REGIONAL --body
'file:///path/to/imported-api-body.json'
Implementation
Future<RestApi> importRestApi({
required Uint8List body,
bool? failOnWarnings,
Map<String, String>? parameters,
}) async {
ArgumentError.checkNotNull(body, 'body');
final $query = <String, List<String>>{
if (failOnWarnings != null) 'failonwarnings': [failOnWarnings.toString()],
if (parameters != null)
for (var e in parameters.entries) e.key: [e.value],
};
final response = await _protocol.send(
payload: body,
method: 'POST',
requestUri: '/restapis?mode=import',
queryParams: $query,
exceptionFnMap: _exceptionFns,
);
return RestApi.fromJson(response);
}