标签: graphql

在Relay中,节点接口和全局ID规范起什么作用?

我开始使用它,relay-starter-kit并通过Relay和GraphQL文档工作.但是有很多领域是无法解释和神秘的.

说真的,我到处都阅读了很多关于所有这些事情的文件,但对以下问题找不到任何令人满意的解释:

这个是来做什么的?我把日志记录但它甚至根本没有被调用:

var {nodeInterface, nodeField} = nodeDefinitions(
  (globalId) => {
    var {type, id} = fromGlobalId(globalId);
    if (type === 'User') {
      return getUser(id);
    } else if (type === 'Widget') {
      return getWidget(id);
    } else {
      return null;
    }
  },
  (obj) => {
    if (obj instanceof User) {
      return userType;
    } else if (obj instanceof Widget) {
      return widgetType;
    } else {
      return null;
    }
  }
);
Run Code Online (Sandbox Code Playgroud)

这个的实际效果是什么:

interfaces: [nodeInterface],
Run Code Online (Sandbox Code Playgroud)

也许与此相关,node这里的领域是做什么的:

var queryType = new GraphQLObjectType({
  name: …
Run Code Online (Sandbox Code Playgroud)

reactjs graphql graphql-js relayjs

51
推荐指数
1
解决办法
3972
查看次数

如何在"GraphQL模式语言"中向字段添加描述

我有一个graphql架构,其片段如下所示:

type User {
    username: String!
    password: String!
}
Run Code Online (Sandbox Code Playgroud)

在graphiql中,有一个描述字段,但它总是说"自我描述".如何向架构添加描述?

javascript graphql apollo-server

51
推荐指数
3
解决办法
2万
查看次数

你如何防止对GraphQL/Apollo服务器的嵌套攻击?

如何使用以下查询阻止对Apollo服务器的嵌套攻击:

{
  authors {
    firstName
    posts {
      title
      author {
        firstName
        posts{
          title
          author {
            firstName
            posts {
              title
              [n author]
                [n post]
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,如何限制查询中提交的递归数量?这可能是潜在的服务器漏洞.

apollo graphql graphql-js

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

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
查看次数

从“django.utils.encoding”导入错误“force_text”

我正在使用 python、graphene 和 django 实现 graphql 解决方案,但出现以下导入错误:

Result: Failure Exception: ImportError: cannot import name 'force_text' from 'django.utils.encoding'

"/home/site/wwwroot/.python_packages/lib/site-packages/graphene_django/utils/utils.py", line 6, in <module> from django.utils.encoding import force_text
Run Code Online (Sandbox Code Playgroud)

我不确定版本以及是否需要导入额外的模块。我的requirements.txt是这样的:

graphene>=2.1,<3
graphene-django>=2.1,<3
graphql-core>=2.1,<3
graphql-relay==2.0.1
django-filter>=2
Run Code Online (Sandbox Code Playgroud)

有人遇到过类似的问题吗?可以看看我使用的版本吗?谢谢

python django python-3.x graphql graphene-django

50
推荐指数
4
解决办法
6万
查看次数

记录GraphQL API

使用REST,我们可以使用Swagger,RAML或其他技术来记录我们的API并生成HTML文档,我们的消费者可以在不需要与服务器交互的情况下阅读这些文档.

为GraphQL做一些类似的事情吗?有没有办法生成资源和属性的文档?

graphql graphql-js

49
推荐指数
5
解决办法
2万
查看次数

graphqlHTTP 不是函数

这是我的简单 graphql express 应用程序

const express = require('express');
const graphqlHTTP = require('express-graphql');

const app = express();
app.use(
    '/graphql',
    graphqlHTTP({
      graphiql: true,
    })
  );

app.listen(4000, () => {
    console.log("listening for request!");
});
Run Code Online (Sandbox Code Playgroud)

我在运行时遇到以下错误:

 graphqlHTTP({
    ^

TypeError: graphqlHTTP is not a function
    at Object.<anonymous> (D:\PersonalProjects\GraphQL\server\app.js:7:5)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)  
    at internal/main/run_main_module.js:17:47
Run Code Online (Sandbox Code Playgroud)

我该如何解决?提前致谢!

javascript node.js express graphql express-graphql

48
推荐指数
5
解决办法
2万
查看次数

什么时候我应该使用Relay GraphQL连接和简单列表?

在Relay GraphQL中,连接和列表都是类似数组的,但它们具有不同的功能.我什么时候应该使用?

graphql relayjs

47
推荐指数
1
解决办法
3328
查看次数

如何连接GraphQL和PostgreSQL

GraphQL有突变,Postgres有INSERT; GraphQL有查询,Postgres有SELECT; 等等.我还没有找到一个示例,说明如何在项目中使用两者,例如在GraphQL中传递来自前端的所有查询(React,Relay),但实际存储在Postgres中的数据.

有谁知道Facebook正在使用什么作为数据库以及它如何与GraphQL连接?

现在是在Postgres中存储数据的唯一选择来构建自定义"适配器",它们接受GraphQL查询并将其转换为SQL吗?

postgresql graphql

42
推荐指数
4
解决办法
3万
查看次数

GraphQLScalarType中parseValue和parseLiteral之间的区别是什么

翻翻GraphQL文件自定义标量类型(我想创建自己的日期类型),我不知道有什么区别parseValueparseLiteral是.

http://graphql.org/graphql-js/type/#graphqlscalartype

该文档似乎没有包含函数应该执行的任何描述.

有人能让我知道要求是什么吗?我假设serialize必须将标量序列化为字符串.那是对的吗?我假设parseLiteral是该字符串的反序列化类型?在我的例子中是一个日期类型.但是,在示例中 - serialize和parseValue是相同的函数 - 这表明它不是一个简单的反序列化方法.

graphql graphql-js

42
推荐指数
1
解决办法
5135
查看次数