相关疑难解决方法(0)

GraphQL中输入类型的重点是什么?

能否解释一下为什么如果变异的输入参数是对象它应该是输入类型?我认为更简单的只是重用类型而不提供id.

例如:

type Sample {
  id: String
  name: String
}

input SampleInput {
  name: String
}

type RootMutation {
  addSample(sample: Sample): Sample  # <-- instead of it should be
  addSample(sample: SampleInput): Sample
}
Run Code Online (Sandbox Code Playgroud)

对于小对象来说没问题,但是当你有很多对象在模式中有10多个属性时会成为负担.

graphql

50
推荐指数
2
解决办法
9805
查看次数

在 GraphQL 中重用输入类型作为片段

GraphQL 中一个非常常见的用例是创建一个带有突变的对象,并接收完全相同的字段、数据库返回的加号和 ID。这是一个相关的问题,询问这个。

我的问题是,如何简化这种模式以避免重复字段?我试过将输入类型重用为片段,

input ClientInput {
  short_name: String
  full_name: String
  address: String
  email: String
  location: String  
}

type Client {
  id: String
  ...ClientInput
}
Run Code Online (Sandbox Code Playgroud)

...但失败了

语法错误:预期名称,找到...

我在 Fragments 上看到的所有文档和博客文章总是将它们创建on为现有类型。这意味着仍然重复除 ID 字段之外的所有内容:

type Client {
  _id: String
  short_name: String
  full_name: String
  address: String
  email: String
  location: String
}

fragment ClientFields on Client {
  short_name: String
  full_name: String
  address: String
  email: String
  location: String
}

input ClientInput {
  ...ClientFields
}
Run Code Online (Sandbox Code Playgroud)

怎么样更好?

types graphql

4
推荐指数
1
解决办法
5045
查看次数

如何从 js 客户端将对象数组传递给 graphql 查询

我想传递给服务器数组的对象抛出graphqlAPI。

我对架构的查询:

export const schema = buildSchema(`
  type Query {
    statistics(
      modelId: String
      picksEnds: [PickEnd]        
    )
  }: Statistics
  type PickEnd {
    end: String
    limit: float
  } 
  ...
`)
Run Code Online (Sandbox Code Playgroud)

我在客户端基于 js 的查询:

 const createStatisticsQuery = (...) => {
     return `query {
             statistics(
               modelId: "${modelId}", 
               picksEnds: ${JSON.stringify(myEnds)}
             ) ...
Run Code Online (Sandbox Code Playgroud)

但出现错误graphql

消息:“语法错误:预期名称,找到字符串“end””

请求负载中的片段:

{"query":"查询 {\n 统计信息(\n modelId: \"5ca0f4afb88b3a2e006faa0d\",\n picksEnds: [{\"end\":\"home\"},{\"end\":\"绘制\"},{\"end\":\"away\"},{\"end\":\"under\",\"limit\":0.5},{\"end\":\"超过\",\"限制\":0.5},{\"结束\":\"低于\",\"限制\":1.5 ...

javascript graphql

2
推荐指数
1
解决办法
7959
查看次数

标签 统计

graphql ×3

javascript ×1

types ×1