What is @aws-sdk/client-appsync?
@aws-sdk/client-appsync is a part of the AWS SDK for JavaScript, which allows developers to interact with AWS AppSync, a managed service that uses GraphQL to make it easy for applications to get exactly the data they need. This package provides methods to create, update, delete, and query AppSync resources such as GraphQL APIs, data sources, and resolvers.
What are @aws-sdk/client-appsync's main functionalities?
Create GraphQL API
This code sample demonstrates how to create a new GraphQL API using the @aws-sdk/client-appsync package. It initializes the AppSync client, sets the parameters for the new API, and sends a request to create the API.
const { AppSyncClient, CreateGraphqlApiCommand } = require('@aws-sdk/client-appsync');
const client = new AppSyncClient({ region: 'us-west-2' });
const params = {
name: 'MyGraphQLAPI',
authenticationType: 'API_KEY',
};
const run = async () => {
try {
const data = await client.send(new CreateGraphqlApiCommand(params));
console.log(data);
} catch (err) {
console.error(err);
}
};
run();
Update GraphQL API
This code sample shows how to update an existing GraphQL API. It uses the UpdateGraphqlApiCommand to change the name of the API.
const { AppSyncClient, UpdateGraphqlApiCommand } = require('@aws-sdk/client-appsync');
const client = new AppSyncClient({ region: 'us-west-2' });
const params = {
apiId: 'your-api-id',
name: 'UpdatedGraphQLAPI',
};
const run = async () => {
try {
const data = await client.send(new UpdateGraphqlApiCommand(params));
console.log(data);
} catch (err) {
console.error(err);
}
};
run();
Delete GraphQL API
This code sample demonstrates how to delete a GraphQL API using the DeleteGraphqlApiCommand. It requires the API ID of the API to be deleted.
const { AppSyncClient, DeleteGraphqlApiCommand } = require('@aws-sdk/client-appsync');
const client = new AppSyncClient({ region: 'us-west-2' });
const params = {
apiId: 'your-api-id',
};
const run = async () => {
try {
const data = await client.send(new DeleteGraphqlApiCommand(params));
console.log(data);
} catch (err) {
console.error(err);
}
};
run();
List GraphQL APIs
This code sample shows how to list all GraphQL APIs in your account using the ListGraphqlApisCommand.
const { AppSyncClient, ListGraphqlApisCommand } = require('@aws-sdk/client-appsync');
const client = new AppSyncClient({ region: 'us-west-2' });
const run = async () => {
try {
const data = await client.send(new ListGraphqlApisCommand({}));
console.log(data);
} catch (err) {
console.error(err);
}
};
run();
Other packages similar to @aws-sdk/client-appsync
apollo-server
Apollo Server is a community-driven, open-source GraphQL server that works with any GraphQL schema. It provides a robust set of features for building a GraphQL API, including schema stitching, subscriptions, and more. Unlike @aws-sdk/client-appsync, which is specific to AWS AppSync, Apollo Server can be used with any backend and is highly customizable.
graphql-yoga
GraphQL Yoga is a fully-featured GraphQL server with a focus on simplicity and ease of use. It is built on top of Express and Apollo Server, providing a simple setup and a powerful set of features. While @aws-sdk/client-appsync is tailored for AWS AppSync, GraphQL Yoga is more general-purpose and can be used with various backends.
prisma
Prisma is an open-source database toolkit that makes it easy to work with databases in a type-safe way. It provides a powerful ORM for GraphQL APIs, allowing developers to define their data models and generate a GraphQL API automatically. Prisma focuses on database interactions, whereas @aws-sdk/client-appsync is more about managing GraphQL APIs on AWS.
@aws-sdk/client-appsync
Description
AWS SDK for JavaScript AppSync Client for Node.js, Browser and React Native.
AppSync provides API actions for creating and interacting with data
sources using GraphQL from your application.
Installing
To install this package, simply type add or install @aws-sdk/client-appsync
using your favorite package manager:
npm install @aws-sdk/client-appsync
yarn add @aws-sdk/client-appsync
pnpm add @aws-sdk/client-appsync
Getting Started
Import
The AWS SDK is modulized by clients and commands.
To send a request, you only need to import the AppSyncClient
and
the commands you need, for example ListApisCommand
:
const { AppSyncClient, ListApisCommand } = require("@aws-sdk/client-appsync");
import { AppSyncClient, ListApisCommand } from "@aws-sdk/client-appsync";
Usage
To send a request, you:
- Initiate client with configuration (e.g. credentials, region).
- Initiate command with input parameters.
- Call
send
operation on client with command object as input. - If you are using a custom http handler, you may call
destroy()
to close open connections.
const client = new AppSyncClient({ region: "REGION" });
const params = {
};
const command = new ListApisCommand(params);
Async/await
We recommend using await
operator to wait for the promise returned by send operation as follows:
try {
const data = await client.send(command);
} catch (error) {
} finally {
}
Async-await is clean, concise, intuitive, easy to debug and has better error handling
as compared to using Promise chains or callbacks.
Promises
You can also use Promise chaining
to execute send operation.
client.send(command).then(
(data) => {
},
(error) => {
}
);
Promises can also be called using .catch()
and .finally()
as follows:
client
.send(command)
.then((data) => {
})
.catch((error) => {
})
.finally(() => {
});
Callbacks
We do not recommend using callbacks because of callback hell,
but they are supported by the send operation.
client.send(command, (err, data) => {
});
v2 compatible style
The client can also send requests using v2 compatible style.
However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post
on modular packages in AWS SDK for JavaScript
import * as AWS from "@aws-sdk/client-appsync";
const client = new AWS.AppSync({ region: "REGION" });
try {
const data = await client.listApis(params);
} catch (error) {
}
client
.listApis(params)
.then((data) => {
})
.catch((error) => {
});
client.listApis(params, (err, data) => {
});
Troubleshooting
When the service returns an exception, the error will include the exception information,
as well as response metadata (e.g. request id).
try {
const data = await client.send(command);
} catch (error) {
const { requestId, cfId, extendedRequestId } = error.$metadata;
console.log({ requestId, cfId, extendedRequestId });
}
Getting Help
Please use these community resources for getting help.
We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
To test your universal JavaScript code in Node.js, browser and react-native environments,
visit our code samples repo.
Contributing
This client code is generated automatically. Any modifications will be overwritten the next time the @aws-sdk/client-appsync
package is updated.
To contribute to client you can check our generate clients scripts.
License
This SDK is distributed under the
Apache License, Version 2.0,
see LICENSE for more information.
Client Commands (Operations List)
AssociateApi
Command API Reference / Input / Output
AssociateMergedGraphqlApi
Command API Reference / Input / Output
AssociateSourceGraphqlApi
Command API Reference / Input / Output
CreateApi
Command API Reference / Input / Output
CreateApiCache
Command API Reference / Input / Output
CreateApiKey
Command API Reference / Input / Output
CreateChannelNamespace
Command API Reference / Input / Output
CreateDataSource
Command API Reference / Input / Output
CreateDomainName
Command API Reference / Input / Output
CreateFunction
Command API Reference / Input / Output
CreateGraphqlApi
Command API Reference / Input / Output
CreateResolver
Command API Reference / Input / Output
CreateType
Command API Reference / Input / Output
DeleteApi
Command API Reference / Input / Output
DeleteApiCache
Command API Reference / Input / Output
DeleteApiKey
Command API Reference / Input / Output
DeleteChannelNamespace
Command API Reference / Input / Output
DeleteDataSource
Command API Reference / Input / Output
DeleteDomainName
Command API Reference / Input / Output
DeleteFunction
Command API Reference / Input / Output
DeleteGraphqlApi
Command API Reference / Input / Output
DeleteResolver
Command API Reference / Input / Output
DeleteType
Command API Reference / Input / Output
DisassociateApi
Command API Reference / Input / Output
DisassociateMergedGraphqlApi
Command API Reference / Input / Output
DisassociateSourceGraphqlApi
Command API Reference / Input / Output
EvaluateCode
Command API Reference / Input / Output
EvaluateMappingTemplate
Command API Reference / Input / Output
FlushApiCache
Command API Reference / Input / Output
GetApi
Command API Reference / Input / Output
GetApiAssociation
Command API Reference / Input / Output
GetApiCache
Command API Reference / Input / Output
GetChannelNamespace
Command API Reference / Input / Output
GetDataSource
Command API Reference / Input / Output
GetDataSourceIntrospection
Command API Reference / Input / Output
GetDomainName
Command API Reference / Input / Output
GetFunction
Command API Reference / Input / Output
GetGraphqlApi
Command API Reference / Input / Output
GetGraphqlApiEnvironmentVariables
Command API Reference / Input / Output
GetIntrospectionSchema
Command API Reference / Input / Output
GetResolver
Command API Reference / Input / Output
GetSchemaCreationStatus
Command API Reference / Input / Output
GetSourceApiAssociation
Command API Reference / Input / Output
GetType
Command API Reference / Input / Output
ListApiKeys
Command API Reference / Input / Output
ListApis
Command API Reference / Input / Output
ListChannelNamespaces
Command API Reference / Input / Output
ListDataSources
Command API Reference / Input / Output
ListDomainNames
Command API Reference / Input / Output
ListFunctions
Command API Reference / Input / Output
ListGraphqlApis
Command API Reference / Input / Output
ListResolvers
Command API Reference / Input / Output
ListResolversByFunction
Command API Reference / Input / Output
ListSourceApiAssociations
Command API Reference / Input / Output
ListTagsForResource
Command API Reference / Input / Output
ListTypes
Command API Reference / Input / Output
ListTypesByAssociation
Command API Reference / Input / Output
PutGraphqlApiEnvironmentVariables
Command API Reference / Input / Output
StartDataSourceIntrospection
Command API Reference / Input / Output
StartSchemaCreation
Command API Reference / Input / Output
StartSchemaMerge
Command API Reference / Input / Output
TagResource
Command API Reference / Input / Output
UntagResource
Command API Reference / Input / Output
UpdateApi
Command API Reference / Input / Output
UpdateApiCache
Command API Reference / Input / Output
UpdateApiKey
Command API Reference / Input / Output
UpdateChannelNamespace
Command API Reference / Input / Output
UpdateDataSource
Command API Reference / Input / Output
UpdateDomainName
Command API Reference / Input / Output
UpdateFunction
Command API Reference / Input / Output
UpdateGraphqlApi
Command API Reference / Input / Output
UpdateResolver
Command API Reference / Input / Output
UpdateSourceApiAssociation
Command API Reference / Input / Output
UpdateType
Command API Reference / Input / Output