CreateResolver - AWS AppSync

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 /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.

apiId

The ID for the GraphQL API for which the resolver is being created.

Required: Yes

typeName

The name of the Type.

Length Constraints: Minimum length of 1. Maximum length of 65536.

Pattern: [_A-Za-z][_0-9A-Za-z]*

Required: Yes

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, the runtime is required. The runtime value must be APPSYNC_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 the resolverLevelMetricsBehavior value is set to PER_RESOLVER_METRICS. If the resolverLevelMetricsBehavior is set to FULL_REQUEST_RESOLVER_METRICS instead, metricsConfig will be ignored. However, you can still set its value.

metricsConfig can be ENABLED or DISABLED.

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.

resolver

The Resolver object.

Type: Resolver object

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: