我想定义以下查询
{
// return all individuals
individuals {
id
}
}
// return ONE individual by id
individuals(id:"123") {
id
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,查询名称相同,只有参数不同.
今天,我发现的唯一解决方法是定义不同的查询名称.
如何定义多态查询?它甚至可能吗?
我正在考虑实现同时包含错误和数据的 graphql 响应的方法。
是否可以在不创建包含error?
例如
MutationaddMembersToTeam(membersIds: [ID!]! teamId: ID!): [Member]将成员添加到某个团队。假设这种突变被称为有以下membersIds:[1, 2, 3]。
id为1和2的成员已经在团队中,所以必须抛出无法添加这些成员的错误,但应该添加id为3的成员,因为他不在团队中。
我正在考虑使用,formatResponse但似乎我无法在那里得到错误。
是否可以在不向返回类型添加错误字段的情况下解决此问题?
以前,我只是输入了input KeyInputas mode: String!,我希望将类型从 String 更改为!到自定义枚举。
我尝试过以下架构:
enum Mode= {
test
live
}
input KeyInput = {
mode: Mode!
}
type Key {
name,
mode
}
type Query {
Keys(input: KeyInput): [Key]
}
Run Code Online (Sandbox Code Playgroud)
我的查询如下所示:
query{
Keys(input: {mode: "test"}){
name
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
"message": "Expected type Mode!, found \"test\"; Did you mean the enum value test?"
Run Code Online (Sandbox Code Playgroud)
是否可以让枚举值解析字符串值?如果我从输入中删除引号,它将起作用。但是,我需要能够继续将模式解析为字符串。
是否有从Entity Framework模型生成GraphQL类型的工具?
const GET_DOGS = gql`
{
dogs {
id
breed
}
}
`;
Run Code Online (Sandbox Code Playgroud)
我从这里找到了这种新语法。
你能解释一下这种语法吗?在哪里可以找到详细信息?
两者之间是否存在显着差异?我对从运行时和启动性能到功能和工作流差异的任何事情感兴趣.文档在解释差异方面做得不好,何时应该使用其中一个.
const { graphql, buildSchema } = require('graphql');
const schema = buildSchema(`
type Query {
hello: String
}
`);
const root = { hello: () => 'Hello world!' };
graphql(schema, '{ hello }', root).then((response) => {
console.log(response);
});
Run Code Online (Sandbox Code Playgroud)
const { graphql, GraphQLSchema, GraphQLObjectType, GraphQLString } = require('graphql');
const schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'Query',
fields: () => ({
hello: {
type: GraphQLString,
resolve: () => 'Hello world!'
}
})
})
});
graphql(schema, '{ hello …Run Code Online (Sandbox Code Playgroud) 索引.ts:
const server = new ApolloServer({
typeDefs,
resolvers,
context: ({ req, res }: any) => ({ req, res })
});
Run Code Online (Sandbox Code Playgroud)
用户架构.ts
export const typeDefs = gql`
scalar TimeStamp
type Query {
getUser(id: Int!): User
}
type Mutation {
addUser(
name: String!
email: String
age: Int
register_at: TimeStamp!
): Boolean!
}
type User {
id: Int!
name: String!
email: String!
age: Int!
register_at: TimeStamp!
}
`;
Run Code Online (Sandbox Code Playgroud)
UserResolver.ts
export const resolvers = {
TimeStamp: timeStamp,
Query: {
getUser: async (_: any, args: …Run Code Online (Sandbox Code Playgroud) 我知道突变是连续的,所以对我来说,如果突变 1 创建一个实体并返回一个 id,那么突变 2 应该有权访问该 id,这对我来说是有意义的。但是我在网上没有看到任何示例,并且似乎无法让它工作。我看到人们说你需要在路由的解析函数中处理这个问题,但如果我可以在查询中得到这个,这似乎是额外的不必要的代码。
例如,我有以下帐户,其中帐户属于客户端,因此在创建之前需要 clientId。然而这不起作用......
mutation createClientAndAccount($account: AccountInput, $client: ClientInput){
createClient(client: $client){ clientId }
createAccount(account: $account, clientId: USE_CLIENT_ID_FROM_ABOVE) { ... }
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过嵌套突变,但也没有太多运气......
我想做的事情可能吗?的解析函数是否会createAccount从 中返回数据createClient?
我正在尝试编写一个查询来检索一个对象,该对象的属性linkedCards包含具有不同模式的对象数组。
我有 3 种不同的模式(内置Contentful):
CardA 示例:
{
id: 42,
productName: 'Laptop',
price: 999
}
Run Code Online (Sandbox Code Playgroud)
CardB 示例:
{
id: 999,
title: 'Buy our refurbished Laptops today!'
}
Run Code Online (Sandbox Code Playgroud)
CardC 示例:
{
id: 100,
linkedCards: [
{
id: 42,
productName: 'Laptop',
price: 999
},
{
id: 999,
title: 'Buy our refurbished Laptops today!'
}
]
}
Run Code Online (Sandbox Code Playgroud)
询问:
allCardC() {
nodes {
linkedCards {
id
title
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行以下 GraphQL 查询时,我得到
"Cannot query field "title" on type "CardACardBUnion". Did …
我想在 GraphQL 查询变量中使用数组,以便我可以通过 Gatsby 的单个查询获取多个产品的数据,但目前我收到错误。
我的 graphQL 查询如下所示:
query ($id: [String!]) {
shopifyProduct(handle: {eq: $id}) {
handle
id
title
handle
productType
shopifyId
}
}
Run Code Online (Sandbox Code Playgroud)
我的查询变量如下所示:
{
"id": ["liner-jacket", "pocket-t-shirt"]
}
Run Code Online (Sandbox Code Playgroud)
所需的响应将是(类似于):
{
"data": {
"shopifyProduct": {
"handle": "liner-jacket",
"id": "Shopify__Product__hopbjidjoqjndadnawdawda123123=",
"title": "Liner Jacket",
"productType": "jacket",
"shopifyId": "hopbjidjoqjndadnawdawda123123="
},
"shopifyProduct": {
"handle": "pocket-t-shirt",
"id": "Shopify__Product__iajwdoiajdoadjwaowda4023123=",
"title": "Pocket T-Shirt",
"productType": "t-shirt",
"shopifyId": "iajwdoiajdoadjwaowda4023123="
}
}
}
Run Code Online (Sandbox Code Playgroud) graphql-js ×10
graphql ×8
gatsby ×2
javascript ×2
apollo ×1
contentful ×1
node.js ×1
typescript ×1