紧跟在查询类型(query/mutation)GraphQL之后的字符串的意义
Posted
技术标签:
【中文标题】紧跟在查询类型(query/mutation)GraphQL之后的字符串的意义【英文标题】:The significance of the string immediately after query type (query / mutation) GraphQL 【发布时间】:2016-06-28 08:56:11 【问题描述】:我想知道查询类型后面的字符串有什么意义,在本例中为“ProvisionQueues”,似乎从字符串中删除它不会影响任何东西——它只是用于日志记录还是什么。元数据?
mutation ProvisionQueues
createQueue(name: "new-queue")
url
【问题讨论】:
【参考方案1】:该字符串是操作名称。如果您不指定名称,则该操作称为匿名操作。在实际情况下,我总是喜欢指定一个操作名称,因为这样可以更轻松地执行诸如读取堆栈跟踪之类的操作。
似乎从字符串中删除它不会影响任何东西
您只能在执行单个操作时使用匿名操作。例如,以下会导致错误:
query
user(id: 1)
name
query
user(id: 2)
name
错误:
"message": "This anonymous operation must be the only defined operation."
如果你想了解更多,可以查看the GraphQL spec:
如果文档仅包含一个操作,则该操作可能未命名或以简写形式表示,即省略查询关键字和操作名称。否则,如果一个 GraphQL 查询文档包含多个操作,则每个操作都必须命名。
【讨论】:
【参考方案2】:用另一个例子补充@Eric 的答案。
query allNotifications
notifications
success
errors
notifications
id
title
description
attachment
createdAt
query
users
errors
success
users
id
fullName
请注意上面的用户查询没有操作名称。这可以通过以下方式解决。
query allUsers
users
errors
success
users
id
fullName
mohalla
【讨论】:
以上是关于紧跟在查询类型(query/mutation)GraphQL之后的字符串的意义的主要内容,如果未能解决你的问题,请参考以下文章