AWS- Amplify - Appsync:使用 CLI 从 Android 应用程序更改云资源时,正确的工作流程是啥?

Posted

技术标签:

【中文标题】AWS- Amplify - Appsync:使用 CLI 从 Android 应用程序更改云资源时,正确的工作流程是啥?【英文标题】:AWS- Amplify - Appsync : What is the correct workflow when using CLI to make changes to the cloud resources from an Android app?AWS- Amplify - Appsync:使用 CLI 从 Android 应用程序更改云资源时,正确的工作流程是什么? 【发布时间】:2020-02-21 22:18:29 【问题描述】:

我正在尝试使用 Amplify CLI 配置 AWS AppSync API 并在 android 应用程序中使用它。我用这个网站作为参考:https://aws-amplify.github.io/docs/android/api#appsync-apis-created-using-the-cli

我目前的工作流程如下——

    我创建了应用程序并添加了依赖项。我在根目录安装 CLI,运行 amplify initamplify add api 并按照步骤操作。我在后端 api 文件夹中输入了一个基本模式并运行了amplify push。 (带 - 继续?是;更新代码?是;生成 GraphQL 语句?是) 接下来,我通过添加更多属性、类型和解析器在 AWS AppSync 控制台中进行了测试。 一旦他们工作,我在项目的 Amplify 后端文件夹的架构中进行了相同的更改;将所需的解析器粘贴到后端 - 解析器文件夹中;并再次运行amplify push。 (继续?是;更新代码?是;生成并覆盖 GraphQL 语句?否;//这是因为我不希望任何现有的解析器和突变被覆盖) 然后我在我的应用程序的根文件夹中运行amplify codegen 并构建我的应用程序。 //这是因为即使在推送后在后端看到了更改,但我无法在应用程序中找到新添加的类型,除非我运行 codegen.即文件 -(MyApp\app\build\generated\source\appsync\com\amazonaws\amplify\generated\graphql\GetBooksQuery.java) 仅在 codegen 之后可用。

这是正确的工作流程吗?特别是第 4 步,因为上面的文档链接没有讨论如何在架构修改(在项目的后端文件夹中)和推送之后在您的 Android 应用程序中查看新类型(添加到架构中),而使用 CLI。

如果这不正确,那么修改架构并在 Android 应用中查看效果的正确工作流程是什么?

(我是初学者。TIA)

【问题讨论】:

【参考方案1】:

amplify codegen 应该类似于 auth、api 等。您应该将其添加到您的放大中一次且仅一次。

我认为是您的第 3 步的这一部分导致了问题

生成和覆盖 GraphQL 语句?没有

【讨论】:

【参考方案2】:

有两种不同的产品需要注意:

    The AppSync SDK The Amplify Library's API Category

第一个是围绕 Apollo 的遗留包装器。第二个是 AWS 团队正在支持的当前生产库。两者都与 AppSync 对话。

The link you cited 重定向到Amplify API documentation。 Amplify CLI 大约在一年前更新,为 API 类别生成代码,而不是为 AppSync SDK 生成代码。

如果你想使用 AppSync SDK,我会按照 codeaddict 的指导,也可以参考项目的README.md

如果您想使用 Amplify 库,请记下以 Install Amplify Libraries 开头的不同说明。

【讨论】:

【参考方案3】:

如果您有一个在 AppSync 控制台上测试过的有效 AppSync API,您只想在您的 Android 应用程序中使用它,您可以在您的 Android 项目的根目录中运行这些命令:

    放大初始化 放大添加codegen --apiId xxxxxx 放大代码生成

【讨论】:

以上是关于AWS- Amplify - Appsync:使用 CLI 从 Android 应用程序更改云资源时,正确的工作流程是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 React 中使用 AWS Amplify Appsync 上传图像

AWS Amplify AppSync 订阅无法正常工作

如何使用 Amplify 为 GraphQL API (AWS AppSync) 生成类

aws amplify appsync 中的 Graphql 突变错误

AWS Amplify (AppSync + Cognito) 使用每个组织/租户的动态组进行授权

AWS Amplify AppSync 使用在 Cognito 中创建的 Google 用户登录