amazon-web-services - AWS Amplify API 错误 - 字段不是 Int 类型
问题描述
我正在尝试推送我的 AWS Amplify API 架构/创建资源,但它错误地说:
✖ An error occurred when pushing the resources to the cloud
managerId field is not of type Int
如果我在 Writer 类型上将 managerId 更改为 Int,错误就会消失,但我不想这样做。应该是身份证。知道这里有什么问题吗?
架构.graphql
type Writer implements Person
@model
@searchable
@key(name: "byManager", fields: ["managerId", "hourlyPay"])
@auth(rules: [
{allow: groups, groups: ["Admin"]},
{allow: public, provider: iam, operations: [read]}
])
{
id: ID!
managerId: ID!
name: String!
hourlyPay: Float!
manager: Manager! @connection(fields: ["managerId"])
}
type Manager implements Person
@model
@searchable
@auth(rules: [
{allow: groups, groups: ["Admin"]},
{allow: public, provider: iam, operations: [read]}
])
{
id: ID!
name: String!
department: String
writers: [Writer!]! @connection(keyName: "byManager", fields: ["id"])
}
谢谢!
解决方案
我正在处理的一个 Android 项目中遇到了同样的问题。
我通过将下一个代码放在我创建的文件中来修复它app/src/main/graphql
(我必须创建文件夹 graphql)。
/app/src/main/graphql/aws-directives.graphql
directive @connection(name: String, keyField: String, sortField: String, limit: Int) on FIELD_DEFINITION
然后,而不是使用@key,我只使用了这样的指令@connection
type Comment @model {
id: ID!
text: String!
postId: Post @connection(name: "commentsByPost")
}
type Post @model {
id: ID!
comments: [Comment] @connection(name: "commentsByPost")
}
最后,当您创建评论时,您必须传递 postId。如果您执行查询以列出帖子及其评论,您将正确获得与每个帖子关联的评论。
推荐阅读
- stream - 如何在 Gulp 管道中并行运行两个单独的插件?
- javascript - 应用验证功能 React js 后允许取消选择复选框的问题
- python - 电子邮件提取以不需要的字符开始和结束(python)
- intellij-idea - 如何更改 Intellij Idea 菜单行的大小?
- c++ - 无法通过 Windows API 模拟鼠标点击
- javascript - Javascript函数仅每隔一次执行一次
- java - Spring Security 中的哪些类/方法处理重定向到 /oauth2/authorization/{registrationId}?需要覆盖容器
- python - Python中的正则表达式:查找长度为n或更长的单词
- c# - 在 MVC Core API 项目中处理 404
- mysql - 组合两个选择语句(追加列)