我的项目是用vue构建的。js和severless框架,当我尝试将其与Aws AppSync和Amplify(通过使用Amplify cli)集成时,它会自动生成一个模式。/src/graphql
下的json几乎不可读。因此,每次我想更改模式时,我都会转到appsync控制台,在那里更改它,然后执行以下操作之一:
>
执行放大终端中的api更新,以便它更新云中发生的任何变化,并相应地更新我的本地模式。
下载模式。更改后appsync控制台中的json文件。来回走动是非常耗费精力的。
所以我的问题是:
>
我可以在项目中使用schema.graphql而不是不可读的schema.json
我还注意到,如果我注释掉schema.json中的每一行,甚至在 /src/graphql中完全删除schema.json,当我运行它时,它不会给我任何错误,为什么会发生这种情况?
提前谢谢。
例如(一对多关系)单个用户将有更多的帖子
type User @model {
id: ID!
name: String
posts: [Post] @connection(keyName: "postsByUser", fields: ["id"])
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}
type Post @model
@key(name: "postsByUser", fields: ["userID"]) {
id: ID!
description: String!
userID: ID!
user: User @connection(fields: ["userID"])
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
}
然后保存
amplify api gql-compile
检查后给放大推送,它会改变模式、数据源、查询
更新/生成架构。json,查询
amplify add codegen bbp3andl********** (->appsync id)
请参阅此链接以编写模式模型https://blog.grandstack.io/graphql-api-configuration-with-neo4j-graphql-js-bf7a1331c793
我在Amplify方面没有太多经验,但我在Serverless上使用过AppSync。我在repo中的版本控制下维护模式(使用cleaner SDL格式),一个CI脚本上载到S3,然后通过Cloudformation(嵌入到serverless.yml中)更新AppSync。
AWS::AppSync::GraphQLSchema资源允许内联模式(不太干净)或从S3下拉。拥有一个单独的文件还使您能够在本地进行测试,并更好地跟踪更改/漂移。
这个问题有点老了,但它可能会帮助某些人:
模式。json
文件是自省模式[1]。它的设计是机器可读的,因此您最喜欢的库可以帮助您在客户端验证您的请求,它当然不是为人类可读或可编辑而设计的。
相反,您应该编辑amplify/backend/api/
根据[2]中的指令和转换器处理该模式文件(如果要添加操作模式、云信息或其他资源的自定义指令,还可以添加自己的转换器)。这个过程的输出在build/graphql中。API文件夹中的架构
构建cloudformation来部署它,类似于@peter-n自己所做的
部署它,然后
- 为您获取内省模式(schema.json),并将其保存到
中的schemaPath
中给定的位置。graphqlconfig。yml
,默认情况下,它是您的src/graphql
目录
[1]https://graphql.org/learn/introspection/
[2]https://docs.amplify.aws/cli/graphql-transformer/directives
我使用aws cdk设置了我的AppSync api,但没有使用他们的amplify框架。我正在试图弄清楚如何/是否可以从我的AppSync文件,但不使用amplify,即无法访问命令。我确实尝试过安装和运行它,但我假设amplify希望文件位于某些目录中,因此失败了。 我调查https://graphql-code-generator.com但由于AppSync使用的特殊类型(如)无法工作,解决
我为appsync迁移了一个Flatter本地插件来放大。现在我想知道在appsync控制台中更新GraphQL之后,如何在我的Flatter项目的android部分生成代码。 最初我使用:
我对GraphQL,Appsync和放大器非常陌生。我使用AWS AppSync与放大器通过GraphQL查询从DynamoDB表获取记录。前端在ReactJS中。看看aws文档上的一些例子,我似乎可以用JSON格式获取记录,就像它存储在表中一样。我想找到一些留档或示例,说明如何迭代返回的记录集,并在返回的数据发送回客户端之前对其执行一些计算。但是我无法将在线留档与我想要实现的目标联系起来。 例如
Amplify是否支持此处概述的脱机功能:https://docs.aws.amazon.com/appsync/latest/devguide/building-a-client-app-react.html#offline-背景 我应该这样设置吗?https://aws.github.io/aws-amplify/media/api_guide#configuration-for-graphq
我的DynamoDB表数据架构: 我的主要用例是,我有一个“PK”和“SK”的范围,这是目标时间范围,并查询DDB以获得“摘要”列表。这种数据设计适用于DDB API。 现在,我想使用AppSync为这个DynamoDB for Amplify应用程序创建一个GraphQL API。所以我创建了一个像这样的GraphQL模式: GraphQL自动为我创建了2个查询API:和。支持我的是,当我列出A
我使用@aws cdk/aws appsync中的代码优先方法来生成我的graphql模式。为了生成Typescript代码,我需要一种检索模式的方法。部署前的graphql(可能以某种方式从命令中提取它?)。