CreateResolver
Creates a Resolver
object.
A resolver converts incoming requests into a format that a data source can understand, and converts the data source's responses into GraphQL.
Request Syntax
POST /v1/apis/apiId
/types/typeName
/resolvers HTTP/1.1
Content-type: application/json
{
"cachingConfig": {
"cachingKeys": [ "string
" ],
"ttl": number
},
"code": "string
",
"dataSourceName": "string
",
"fieldName": "string
",
"kind": "string
",
"maxBatchSize": number
,
"metricsConfig": "string
",
"pipelineConfig": {
"functions": [ "string
" ]
},
"requestMappingTemplate": "string
",
"responseMappingTemplate": "string
",
"runtime": {
"name": "string
",
"runtimeVersion": "string
"
},
"syncConfig": {
"conflictDetection": "string
",
"conflictHandler": "string
",
"lambdaConflictHandlerConfig": {
"lambdaConflictHandlerArn": "string
"
}
}
}
URI Request Parameters
The request uses the following URI parameters.
Request Body
The request accepts the following data in JSON format.
- cachingConfig
-
The caching configuration for the resolver.
Type: CachingConfig object
Required: No
- code
-
The
resolver
code that contains the request and response functions. When code is used, theruntime
is required. Theruntime
value must beAPPSYNC_JS
.Type: String
Length Constraints: Minimum length of 1. Maximum length of 32768.
Required: No
- dataSourceName
-
The name of the data source for which the resolver is being created.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 65536.
Pattern:
[_A-Za-z][_0-9A-Za-z]*
Required: No
- fieldName
-
The name of the field to attach the resolver to.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 65536.
Pattern:
[_A-Za-z][_0-9A-Za-z]*
Required: Yes
- kind
-
The resolver type.
-
UNIT: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.
-
PIPELINE: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of
Function
objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.
Type: String
Valid Values:
UNIT | PIPELINE
Required: No
-
- maxBatchSize
-
The maximum batching size for a resolver.
Type: Integer
Valid Range: Minimum value of 0. Maximum value of 2000.
Required: No
- metricsConfig
-
Enables or disables enhanced resolver metrics for specified resolvers. Note that
metricsConfig
won't be used unless theresolverLevelMetricsBehavior
value is set toPER_RESOLVER_METRICS
. If theresolverLevelMetricsBehavior
is set toFULL_REQUEST_RESOLVER_METRICS
instead,metricsConfig
will be ignored. However, you can still set its value.metricsConfig
can beENABLED
orDISABLED
.Type: String
Valid Values:
ENABLED | DISABLED
Required: No
- pipelineConfig
-
The
PipelineConfig
.Type: PipelineConfig object
Required: No
- requestMappingTemplate
-
The mapping template to use for requests.
A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).
VTL request mapping templates are optional when using an AWS Lambda data source. For all other data sources, VTL request and response mapping templates are required.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 65536.
Pattern:
^.*$
Required: No
- responseMappingTemplate
-
The mapping template to use for responses from the data source.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 65536.
Pattern:
^.*$
Required: No
- runtime
-
Describes a runtime used by an AWS AppSync pipeline resolver or AWS AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.
Type: AppSyncRuntime object
Required: No
- syncConfig
-
The
SyncConfig
for a resolver attached to a versioned data source.Type: SyncConfig object
Required: No
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"resolver": {
"cachingConfig": {
"cachingKeys": [ "string" ],
"ttl": number
},
"code": "string",
"dataSourceName": "string",
"fieldName": "string",
"kind": "string",
"maxBatchSize": number,
"metricsConfig": "string",
"pipelineConfig": {
"functions": [ "string" ]
},
"requestMappingTemplate": "string",
"resolverArn": "string",
"responseMappingTemplate": "string",
"runtime": {
"name": "string",
"runtimeVersion": "string"
},
"syncConfig": {
"conflictDetection": "string",
"conflictHandler": "string",
"lambdaConflictHandlerConfig": {
"lambdaConflictHandlerArn": "string"
}
},
"typeName": "string"
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
Errors
For information about the errors that are common to all actions, see Common Errors.
- BadRequestException
-
The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and then try again.
HTTP Status Code: 400
- ConcurrentModificationException
-
Another modification is in progress at this time and it must complete before you can make your change.
HTTP Status Code: 409
- InternalFailureException
-
An internal AWS AppSync error occurred. Try your request again.
HTTP Status Code: 500
- NotFoundException
-
The resource specified in the request was not found. Check the resource, and then try again.
HTTP Status Code: 404
- UnauthorizedException
-
You aren't authorized to perform this operation.
HTTP Status Code: 401
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: