aws / aws/serverless-application-model

How can I attach a resolver to a field in Appsync with SAM?

Open
#3,685 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
9.6k
Forks
2.5k
Avg merge
1d 11h
Merged PRs (30d)
7

Description

I have a GraphQL schema with a query. The query uses a lambda resolver that connects to a REST API and fetches the data. I want to have the field `TimeSchedules` on the type `AccessGroup` to use a different resolver and I've managed to get this to work in the console but it doesn't seem to be possible with SAM.

Parts of schema:
```
type Query {
getAccessGroup(site: ID!, id: ID!): AccessGroup
}

type AccessGroup {
id: ID!
customerReference: String!
lockCount: Int!
userCount: Int!
TimeSchedules: TimeSchedulesResults
}
```

On the REST Api access groups have time schedules but they're two different calls, and as I don't always need the latter, I think it's better to have it like this.

In SAM, I've tried this:
```
GraphQLVBVAAPI:
Type: AWS::Serverless::GraphQLApi
Properties:
SchemaUri: ./graphql/schema.graphql
Resolvers:
Query:
getAccessGroup:
Runtime:
Name: APPSYNC_JS
Version: "1.0.0"
Pipeline:
- lambdaResolver
AccessGroup:
Runtime:
Name: APPSYNC_JS
Version: "1.0.0"
Pipeline:
- lambdaResolver
```
But then I get an error saying
>No field named AccessGroup found on type Query

This is quite easy in the Console where I can just attach a resolver to the spesific field itself.

Any suggestions?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.