我在 GraphQL 结果中取回查询名称有什么原因吗?
Any reason I am getting back the query name in the GraphQL results?
将 makeExecutableSchema
与以下查询定义结合使用:
# Interface for simple presence in front-end.
type AccountType {
email: Email!
firstName: String!
lastName: String!
}
# The Root Query
type Query {
# Get's the account per ID or with an authToken.
getAccount(
email: Email
) : AccountType!
}
schema {
query: Query
}
以及以下解析器:
export default {
Query: {
async getAccount(_, {email}, { authToken }) {
/**
* Authentication
*/
//const user = security.requireAuth(authToken)
/**
* Resolution
*/
const account = await accounts.find({email})
if (account.length !== 1) {
throw new GraphQLError('No account was found with the given email.', GraphQLError.codes.GRAPHQL_NOT_FOUND)
}
return account
}
}
}
当我查询时:
query {
getAccount(email: "test@testing.com") {
firstName
lastName
}
}
我在 GraphiQL 中得到以下结果:
{
"data": {
"getAccount": {
"firstName": "John",
"lastName": "Doe"
}
}
}
那么,我在结果中得到这个 "getAccount" 的原因是什么?
因为getAccount
不是查询名称。它只是根查询类型 Query
.
上的一个常规字段
并且在 上获得与查询完全相同的形状 的结果是 GraphQL 的核心设计原则之一:
来自 http://graphql.org/ 站点的屏幕截图
GraphQL 中的查询名称在 query
关键字之后:
query myQueryName {
getAccount(email: "test@testing.com") {
firstName
lastName
}
}
将 makeExecutableSchema
与以下查询定义结合使用:
# Interface for simple presence in front-end.
type AccountType {
email: Email!
firstName: String!
lastName: String!
}
# The Root Query
type Query {
# Get's the account per ID or with an authToken.
getAccount(
email: Email
) : AccountType!
}
schema {
query: Query
}
以及以下解析器:
export default {
Query: {
async getAccount(_, {email}, { authToken }) {
/**
* Authentication
*/
//const user = security.requireAuth(authToken)
/**
* Resolution
*/
const account = await accounts.find({email})
if (account.length !== 1) {
throw new GraphQLError('No account was found with the given email.', GraphQLError.codes.GRAPHQL_NOT_FOUND)
}
return account
}
}
}
当我查询时:
query {
getAccount(email: "test@testing.com") {
firstName
lastName
}
}
我在 GraphiQL 中得到以下结果:
{
"data": {
"getAccount": {
"firstName": "John",
"lastName": "Doe"
}
}
}
那么,我在结果中得到这个 "getAccount" 的原因是什么?
因为getAccount
不是查询名称。它只是根查询类型 Query
.
并且在 上获得与查询完全相同的形状 的结果是 GraphQL 的核心设计原则之一:
GraphQL 中的查询名称在 query
关键字之后:
query myQueryName {
getAccount(email: "test@testing.com") {
firstName
lastName
}
}