我希望我能解释清楚。
所以我创建了一个带有放大功能的React应用,并推送了我的模式,然后继续修改和创建了我需要的各种解析器,因为我发现如果我再次执行“放大推送”,因为我更改或修改了所有解析器,则添加了一个新字段也会被重置,我直接在Appsync控制台中直接开始更新架构,因此每次我想更改某些内容时都不必重做解析器。现在不幸的是,我以某种方式执行了放大推送,从而再次删除了所有解析器。所以我的问题是...有没有办法将我的Shema恢复到以前的状态并带回所有缺少的分解器?
谢谢。
答案 0 :(得分:0)
首先,您是否版本控制了解析器?我没有为您的解析器设置AppSync版本或保留备份,但是您可能希望立即与服务团队联系,以查看它们是否可以还原仅在AppSync API中存在的解析器。
第二:您更改了默认解析器,还是创建了新解析器?
如果要覆盖默认解析器,则可以在/<project_root>/amplify/backend/api/<your_api_name>/resolvers
中创建它们。 (如果该目录不存在,请创建它。)
以下是有关覆盖解析器的官方Amplify文档。链接的页面后直接有一个页面
假设您有一个简单的架构。graphql…
type Todo @model {
id: ID!
name: String!
description: String
}
,并且您想要更改将在项目编译时生成的Query.getTodo解析器的请求映射模板的行为。为此,您将在API项目的resolvers目录中创建一个名为Query.getTodo.req.vtl的文件。下次运行amplify push或ampl api gql-compile时,将使用您的解析器模板,而不是自动生成的模板。您可以类似地创建Query.getTodo.res.vtl文件,以更改解析器的响应映射模板的行为。
https://aws-amplify.github.io/docs/cli-toolchain/graphql#overwriting-resolvers
还有关于创建自定义解析器并将其作为自定义资源附加的文档。 https://aws-amplify.github.io/docs/cli-toolchain/graphql#overwriting-resolvers