The CDK Construct Library for AWS::AppSync
Project description
AWS AppSync Construct Library
---This is a developer preview (public beta) module. Releases might lack important features and might have future breaking changes.
This API is still under active development and subject to non-backward compatible changes or removal in any future version. Use of the API is not recommended in production environments. Experimental APIs are not subject to the Semantic Versioning model.
This module is part of the AWS Cloud Development Kit project.
Usage Example
Given the following GraphQL schema file schema.graphql
:
type Customer {
id: String!
name: String!
}
input SaveCustomerInput {
name: String!
}
type Query {
getCustomers: [Customer]
getCustomer(id: String): Customer
}
type Mutation {
addCustomer(customer: SaveCustomerInput!): Customer
saveCustomer(id: String!, customer: SaveCustomerInput!): Customer
removeCustomer(id: String!): Customer
}
the following CDK app snippet will create a complete CRUD AppSync API:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
class ApiStack(Stack):
def __init__(self, scope, id):
super().__init__(scope, id)
user_pool = UserPool(self, "UserPool",
sign_in_type=SignInType.USERNAME
)
api = GraphQLApi(self, "Api",
name="demoapi",
log_config={
"field_log_level": FieldLogLevel.ALL
},
user_pool_config={
"user_pool": user_pool,
"default_action": UserPoolDefaultAction.ALLOW
},
schema_definition_file="./schema.graphql"
)
customer_table = Table(self, "CustomerTable",
billing_mode=BillingMode.PAY_PER_REQUEST,
partition_key={
"name": "id",
"type": AttributeType.STRING
}
)
customer_dS = api.add_dynamo_db_data_source("Customer", "The customer data source", customer_table)
customer_dS.create_resolver(
type_name="Query",
field_name="getCustomers",
request_mapping_template=MappingTemplate.dynamo_db_scan_table(),
response_mapping_template=MappingTemplate.dynamo_db_result_list()
)
customer_dS.create_resolver(
type_name="Query",
field_name="getCustomer",
request_mapping_template=MappingTemplate.dynamo_db_get_item("id", "id"),
response_mapping_template=MappingTemplate.dynamo_db_result_item()
)
customer_dS.create_resolver(
type_name="Mutation",
field_name="addCustomer",
request_mapping_template=MappingTemplate.dynamo_db_put_item("id", "customer"),
response_mapping_template=MappingTemplate.dynamo_db_result_item()
)
customer_dS.create_resolver(
type_name="Mutation",
field_name="saveCustomer",
request_mapping_template=MappingTemplate.dynamo_db_put_item("id", "customer", "id"),
response_mapping_template=MappingTemplate.dynamo_db_result_item()
)
customer_dS.create_resolver(
type_name="Mutation",
field_name="removeCustomer",
request_mapping_template=MappingTemplate.dynamo_db_delete_item("id", "id"),
response_mapping_template=MappingTemplate.dynamo_db_result_item()
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aws-cdk.aws-appsync-1.21.1.tar.gz
(99.0 kB
view hashes)
Built Distribution
Close
Hashes for aws-cdk.aws-appsync-1.21.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b291f6734dd9c25a79067ad16e627a8be295431ff551c3d9c4702c4fd8990056 |
|
MD5 | c031336dbbc8279cd2d4233cf208717d |
|
BLAKE2b-256 | f763df704e5c98eb0df5d8c953dc1a9c9a7f94cbc15888a1c608a5fc22ac5510 |
Close
Hashes for aws_cdk.aws_appsync-1.21.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d90954ea65646ca602a79ad70c9cc67506ab87a37a64fcae3ddfa43cbdf7036 |
|
MD5 | a569753d02f5da7cc6bdfac342ac7896 |
|
BLAKE2b-256 | 6638ab66edf096c70e38dc9741abbbdfa5e77eff43604cfa5558d816c44dde80 |