标签: graphql

Falcor和GraphQL有什么区别?

GraphQL由类型系统,查询语言和执行语义,静态验证和类型内省组成,每个都在下面概述.为了指导您完成这些组件,我们编写了一个示例来说明GraphQL的各个部分.

- https://github.com/facebook/graphql

Falcor允许您通过虚拟JSON图表将所有远程数据源表示为单个域模型.无论数据位于何处,无论是在客户端的内存中还是通过服务器上的网络,您都可以采用相同的方式编码.

- http://netflix.github.io/falcor/

Falcor和GraphQL有什么区别(在Relay的背景下)?

graphql falcor relayjs

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

GraphQL和微服务架构

我试图了解GraphQL最适合在微服务架构中使用的位置.

关于只有1个GraphQL架构作为API网关代理对目标微服务的请求并强制其响应存在争议.微服务仍然会使用REST/Thrift协议进行通信思考.

另一种方法是每个微服务一个多个GraphQL模式.拥有一个较小的API网关服务器,使用请求的所有信息+ GraphQL查询将请求路由到目标微服务.

第一种方法

将1个GraphQL架构作为API网关将有一个缺点,每次更改微服务合同输入/输出时,我们必须在API网关侧相应地更改GraphQL架构.

第二种方法

如果每个微服务使用多个GraphQL模式,那么在某种程度上是有意义的,因为GraphQL强制执行模式定义,并且消费者需要尊重微服务给出的输入/输出.

问题

  • 在哪里可以找到适合设计微服务架构的GraphQL?

  • 您将如何使用可能的GraphQL实现设计API网关?

architecture microservices graphql

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

如何在不编写长查询的情况下查询所有GraphQL类型字段?

假设您有GraphQL类型,它包含许多字段.如何在不写下包含所有字段名称的长查询的情况下查询所有字段?

例如,如果我有这些字段:

 public function fields()
    {
        return [
            'id' => [
                'type' => Type::nonNull(Type::string()),
                'description' => 'The id of the user'
            ],
            'username' => [
                'type' => Type::string(),
                'description' => 'The email of user'
            ], 
             'count' => [
                'type' => Type::int(),
                'description' => 'login count for the user'
            ]

        ];
    }
Run Code Online (Sandbox Code Playgroud)

要查询所有字段,查询通常是这样的:

FetchUsers{users(id:"2"){id,username,count}}
Run Code Online (Sandbox Code Playgroud)

但我想要一种方法来获得相同的结果,而无需编写所有字段,如下所示:

FetchUsers{users(id:"2"){*}}
//or
FetchUsers{users(id:"2")}
Run Code Online (Sandbox Code Playgroud)

有没有办法在GraphQL中执行此操作?

我正在使用Folkloreatelier/laravel-graphql库.

php laravel graphql graphql-php

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

GraphQL有什么缺点吗?

关于GraphQL的所有文章都会告诉你它有多棒,但它有什么缺点或缺点吗?谢谢.

rest restful-authentication graphql

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

在GraphQL中,"edge"和"node"的含义是什么?

我正在使用一个特定的GraphQL端点,虽然我提供了一个干净的JSON结构作为查询,当我得到结果时,我得到"edge"和"node"标签.似乎它正在污染我的数据而没有明显的好处.为什么它存在,是否有可能摆脱那些更快,更简单的数据解析?

graphql

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

Firebase和GraphQL?

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

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

让我们知道您的想法!

firebase graphql firebase-realtime-database graphql-js

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

如何通过邮递员发送graphql查询?

我用

POST type
URL http://######/graphql
Body: 
query: "query: "{'noteTypes':  {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"
Run Code Online (Sandbox Code Playgroud)

但它返回 "消息":"必须提供查询字符串."

postman graphql

68
推荐指数
10
解决办法
6万
查看次数

Apollo GraphQL React - 如何查询点击?

在阿波罗阵营文档http://dev.apollodata.com/react/queries.html#basics有被示出的组件时自动获取的例子,但我想运行查询一个按钮被点击时.我看到一个示例,当单击一个按钮时"重新"获取查询,但我不希望它最初查询.我看到有一种方法可以调用突变,但是你如何调用查询?

reactjs graphql apollostack

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

使用 react-apollo useMutation 钩子处理错误

我一直试图解决这个问题,但没有找到一个强有力的答案。我正在尝试使用 useMutation 钩子执行登录突变。

TLDR;我想知道在选项中传递的 onError 和 useMutation 给我的错误之间到底有什么区别

这是我的代码片段

const [login, { data, loading, error }] = useMutation(LOGIN_QUERY, {
        variables: {
            email,
            password
        },
        onError(err) {
            console.log(err);
        },
});

Run Code Online (Sandbox Code Playgroud)

在服务器端,我有一个用于登录的预设/硬编码电子邮件,我没有使用 Apollo 或任何其他客户端。在此登录突变的解析器中,如果电子邮件不相同,我只会抛出一个错误

throw new Error('Invalid Email');
Run Code Online (Sandbox Code Playgroud)

现在我想在客户端(React)处理这个错误。但我担心的是,如果我使用从 useMutation 钩子返回的“错误”并尝试以这种方式显示错误

render() {
...
{error && <div> Error occured </div>}
...
}
Run Code Online (Sandbox Code Playgroud)

错误在 UI 中更新,但随后 React 立即向我显示了一个带有 Unhandled Rejection (Error): Graphql error: My-custom-error-message 的屏幕

但是,如果我使用 onError 传递给 useMutate 函数的选项,那么它不会向我显示这个屏幕,我可以对错误做任何我想做的事情。

我想知道传递给选项的 onError 和 useMutation 给我的错误之间到底有什么区别,以及为什么 React 在使用onError 时向我显示错误屏幕。

谢谢!

reactjs graphql react-apollo apollo-client

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

获取GraphQL整个架构查询

我想从服务器获取架构.我可以获得所有类型的实体,但我无法获得属性.

获得所有类型:

query {
  __schema {
    queryType {
      fields {
        name
        type {
          kind
          ofType {
            kind
            name
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如何获取类型的属性:

__type(name: "Person") {
    kind
    name
    fields {
      name
      type {
        kind
        name
        description
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

如何只在1个请求中获取具有属性的所有类型?或者更好:我如何通过mutators,enums,types获得整个架构......

schema graphql

53
推荐指数
9
解决办法
4万
查看次数