我开始使用它,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) 我有一个graphql架构,其片段如下所示:
type User {
username: String!
password: String!
}
Run Code Online (Sandbox Code Playgroud)
在graphiql中,有一个描述字段,但它总是说"自我描述".如何向架构添加描述?
如何使用以下查询阻止对Apollo服务器的嵌套攻击:
{
authors {
firstName
posts {
title
author {
firstName
posts{
title
author {
firstName
posts {
title
[n author]
[n post]
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
换句话说,如何限制查询中提交的递归数量?这可能是潜在的服务器漏洞.
能否解释一下为什么如果变异的输入参数是对象它应该是输入类型?我认为更简单的只是重用类型而不提供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多个属性时会成为负担.
我正在使用 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)
有人遇到过类似的问题吗?可以看看我使用的版本吗?谢谢
使用REST,我们可以使用Swagger,RAML或其他技术来记录我们的API并生成HTML文档,我们的消费者可以在不需要与服务器交互的情况下阅读这些文档.
为GraphQL做一些类似的事情吗?有没有办法生成资源和属性的文档?
这是我的简单 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)
我该如何解决?提前致谢!
在Relay GraphQL中,连接和列表都是类似数组的,但它们具有不同的功能.我什么时候应该使用?
GraphQL有突变,Postgres有INSERT; GraphQL有查询,Postgres有SELECT; 等等.我还没有找到一个示例,说明如何在项目中使用两者,例如在GraphQL中传递来自前端的所有查询(React,Relay),但实际存储在Postgres中的数据.
有谁知道Facebook正在使用什么作为数据库以及它如何与GraphQL连接?
现在是在Postgres中存储数据的唯一选择来构建自定义"适配器",它们接受GraphQL查询并将其转换为SQL吗?
翻翻GraphQL文件自定义标量类型(我想创建自己的日期类型),我不知道有什么区别parseValue和parseLiteral是.
http://graphql.org/graphql-js/type/#graphqlscalartype
该文档似乎没有包含函数应该执行的任何描述.
有人能让我知道要求是什么吗?我假设serialize必须将标量序列化为字符串.那是对的吗?我假设parseLiteral是该字符串的反序列化类型?在我的例子中是一个日期类型.但是,在示例中 - serialize和parseValue是相同的函数 - 这表明它不是一个简单的反序列化方法.
graphql ×10
graphql-js ×4
javascript ×2
relayjs ×2
apollo ×1
django ×1
express ×1
node.js ×1
postgresql ×1
python ×1
python-3.x ×1
reactjs ×1