aws-sdk/clients/appsync 和 aws-appsync 之间有什么区别?

What is the difference betweeen: aws-sdk/clients/appsync and aws-appsync?

任何人都可以告诉我之间有什么区别:

aws-sdk/clients/appsync,以及aws-appsync

根据文档,使用 aws-sdk/clients/appsync 是因为当我们只需要 appsync 时只包含 aws-sdk 太大了,我们使用 aws-sdk/clients/appsync.

然而,aws-appsync似乎也在做同样的事情。当我使用 aws-sdk/clients/appsync 创建客户端时,没有 hydrated() 函数,而 aws-appsync 有。

所以

非常感谢您的帮助。

difference between: aws-sdk/clients/appsync, and aws-appsync

GraphQL 起源于 Facebook,React/React 本机应用程序使用 react-apollo 与基于 APIs 的 GraphQL 对话。

AWS AppSyncGraphQL 的 AWS 产品。 aws-sdk/clients/appsync 是调用各种 AppSync management/control API 的 JS SDK(如创建 GraphQL API、创建数据源等)。不确定他们是否还提供 apis 来使用基于 api.

的 GraphQL

aws-appsync 是使用 AppSync 支持的 GraphQL API 的方式。它与现在移动到 apollo-client.

react-apollo 配合得很好

还有另一个来自 AWS Amplify 的高级 JS 库,用于使用 AppSync 支持的 GraphQL APIs。

aws-sdk/clients/appsync is used because just including aws-sdk is too large

aws-sdk(Github 存储库 here)的初始版本包含所有 AWS 服务的客户端等。您需要安装 aws-sdk 并且您可以通过为它们初始化客户端来与几乎所有 AWS 服务通信。很明显它在打包 JS 包方面不是很好,这个库也不是很模块化。

现在最新版本的 V3(使用 TypeScript 重写)现在是 GA,将客户端移动到单独的 npm 包,即你只需要安装你需要的客户端,例如npm i @aws-sdk/client-appsync 而不是 npm i aws-sdk。了解更多信息 here。如果您刚开始使用 V3 软件包。

Why can't we simplify everything by just using aws-sdk/clients/<any_aws_package> and break everything that did not use it?

V3 JS SDK也是如此。

What is the point of separating something that is similar?

它们不相似。一个用于使用基于 GraphQL 的 APIs(由 AppSync 提供),另一个用于管理 AppSync 本身。 V3 包非常严格地遵循这一点,而早期版本可能有一些实用程序代码/高级抽象以及核心 AWS apis.