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);
}