标签: graphql-js

Firebase和GraphQL?

谁有经验将两者结合使用?

我想一个将firebase调用放在相关字段的解析器中,将一些变量从组件props传递到查询的参数中.

让我们知道您的想法!

firebase graphql firebase-realtime-database graphql-js

71
推荐指数
5
解决办法
3万
查看次数

在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/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 API

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

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

graphql graphql-js

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

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

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

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

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

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

graphql graphql-js

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

何时使用GraphQLID而不是GraphQLInt?

目前尚不清楚何时使用GraphQLID而不是GraphQLInt.

请考虑以下架构:

type User {
  id: Int!
  firstName: String!
  lastName: String!
}

type Query {
  user (id: ID!): User
}
Run Code Online (Sandbox Code Playgroud)

如果是Query.user,使用GraphQLID或似乎没有区别GraphQLInt.

在这种情况下User.id,使用GraphQLID将输入转换为字符串.使用GraphQLInt将确保输入是整数.

这使得查询和类型系统不一致.

规范只是说:

GraphQLScalarType代表ID的A.

这是一个实现细节(例如,GraphQLID当GraphQL客户端可以转换为整数时),还是期望它ID始终是的字符串?

graphql graphql-js

33
推荐指数
1
解决办法
9135
查看次数

Graphql post body"必须提供查询字符串".

我使用Express-graphql中间件.我在正文行中发送以下请求:

POST /graphql HTTP/1.1
Host: local:8083
Content-Type: application/graphql
Cache-Control: no-cache
Postman-Token: d71a7ea9-5502-d5fe-2e36-0ae49c635a29

{
   testing {
      pass(id: 1) {
        idn
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

并有错误

{
  "errors": [
    {
      "message": "Must provide query string."
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

在graphql中,我可以在URL中发送更新.

URL字符串太短.我必须发送更新模型

mutation {
  update(id: 2, x1: "zazaza", x2: "zazaza", x3: "zazaza" ...(more more fields)...) {
    idn
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为它必须在请求机构.我如何发送'更新'查询或我做错了?

express graphql graphql-js

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

GraphQL期望Iterable,但没有为字段xxx.yyy找到一个

我目前正在尝试使用NodeJS的GraphQL,我不知道,为什么以下查询会出现此错误:

{
  library{
    name,
    user {
      name
      email
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如果type我的resolveLibrary是正确的,因为在任何例子,我看了一下他们使用new GraphQL.GraphQLList(),但对我来说我真想回到一个用户对象,而不是用户的数组.

我的代码:

const GraphQL = require('graphql');
const DB = require('../database/db');
const user = require('./user').type;

const library = new GraphQL.GraphQLObjectType({
    name: 'library',
    description: `This represents a user's library`,
    fields: () => {
        return {
            name: {
                type: GraphQL.GraphQLString,
                resolve(library) {
                    return library.name;
                }
            },
            user: {
                type: user,
                resolve(library) {
                    console.log(library.user);
                    return library.user
                }
            }
        }
    }
});

const resolveLibrary = {
    type: …
Run Code Online (Sandbox Code Playgroud)

node.js graphql graphql-js

28
推荐指数
4
解决办法
2万
查看次数

你能将graphql类型设为输入和输出类型吗?

我有一些我想用作输入和输出的对象类型 - 例如货币类型或预订类型.

如何定义我的模式以使其具有支持输入和输出的类型 - 如果我不需要,我不想重复代码.我也不想创建重复的输入类型的东西,如货币和状态枚举.

export const ReservationInputType = new InputObjectType({
  name: 'Reservation',
  fields: {
    hotelId: { type: IntType },
    rooms: { type: new List(RoomType) },
    totalCost: { type: new NonNull(CurrencyType) },
    status: { type: new NonNull(ReservationStatusType) },
  },
});

export const ReservationType = new ObjectType({
  name: 'Reservation',
  fields: {
    hotelId: { type: IntType },
    rooms: { type: new List(RoomType) },
    totalCost: { type: new NonNull(CurrencyType) },
    status: { type: new NonNull(ReservationStatusType) },
  },
});
Run Code Online (Sandbox Code Playgroud)

graphql graphql-js

22
推荐指数
3
解决办法
6753
查看次数

为什么我应该在 urql 上使用 Apollo/Relay?

我正在开发使用 GraphQL 的应用程序。我正在使用urqlGraphQL 客户端并且到目前为止真的很喜欢它。什么是使用的优点阿波罗/继电器urlql

graphql graphql-js

22
推荐指数
1
解决办法
6961
查看次数