问题标签 [graphql-php]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
534 浏览

php - Laravel 中的 Graphql 查询对象

因此,我使用 GraphQL 缩小了基础范围。在我的 laravel 应用程序中

我的 graphql 返回 ID、tenant_reference 和角色,但我似乎无法添加自定义属性,它是一个带有自定义键的对象,它只是返回 null,或者如果我尝试添加一个键,它会出错。

下面是数据的 JSON 表示的示例:

这是类型片段:

下面是查询片段:

这基本上是我想要使用 graphiql 模拟器实现的目标:

请记住,自定义属性可以是任何东西。例如。我可以在 Twitter 上动态添加另一个键:urlhere

这就是它使用graphiql返回的内容

在此处输入图像描述

0 投票
1 回答
202 浏览

php - Graphql Php:类类型定义与模式语言

Graphql 新手,使用webonyx/graphql-php

使用类样式定义与 graphql 提供的语法定义我的模式有什么好处?

我有一个使用类样式模式定义的基本工作示例,如下所示:

但是,我发现以这种方式定义架构很笨拙,我能看到的唯一真正好处是我可以在与架构相同的位置定义解析器。

使用 schema.graphqls 语法看起来更干净,并且更容易移植到其他服务器端语言......

使用类样式定义与 graphql 提供的语法定义我的模式有什么好处?

0 投票
0 回答
330 浏览

php - graphql-php 谁通过 id 获取结果

我是graphql的菜鸟,我从来没有使用过rest或其他类似的语言。

我现在可以用我的水平得到固定值。

我有一个如下的模式文件 demo.schema

这是demo.php:

这是rootvalue.php

现在 la mysql db 表名为user, 它有id, name,age字段

我怎样才能得到这样的结果user.id=1

现在,我可以只返回像“30”、“迈阿密”这样的值。

但是现在,我需要通过数据库来获取数据,所以它将是来自客户端浏览器的这样的查询

我知道 l cat 得到 arg 的 id 值rootvalue.php

但这是我能做的极限。我在其他地方拿不到身份证,怎么办?

PS:我知道如何从数据库中获取数据,只是不知道获取数据库的时间,以及如何将这些数据传输到子对象

0 投票
1 回答
361 浏览

api-platform.com - 如何在 api-platform 中拦截 graphql 请求?

我正在使用 api-platform 2.3.5,但我找不到拦截 graphQl 请求的方法。

我的意思是,假设我正在进行突变(更新)并且还想记录数据或发送电子邮件。我怎么做 ?

我确实阅读了 api-platform 文档,但是关于他们的 graphQl 实现的内容很少。它会自动完成很多工作。

事件尚未实现(https://github.com/api-platform/core/pull/2329

我也发现了这个 - https://github.com/api-platform/core/blob/master/src/GraphQl/Resolver/Factory/ItemMutationResolverFactory.php#L101 但我不想碰它。有没有更简单的方法?

0 投票
2 回答
1016 浏览

laravel-5 - 为什么 Graphql 无法通过使用变量获取 args 但在使用静态 var 时有效

我的突变方案:

查询变量如下

我将它与 laravel-graphql 一起使用。这是我的定义user_edit

我使用我的查询字符串来请求 graphql 服务器,然后服务器返回我的错误

我尝试了很多东西并阅读了 github 上的文档 [ https://github.com/Folkloreatelier/laravel-graphql#creating-a-mutation][1]

并阅读了graphql网站的文档,并以多种方式更改了我的args定义样式,但都失败了,奇怪的是我可以获取args但使用静态变量,如follow

然后它起作用了!我试图胡思乱想,但对此一无所知。我想我真的需要帮助

0 投票
1 回答
774 浏览

graphql - 在 GraphQL 中查询未知数据结构

我刚开始使用 GraphQL,目前正在使用 webonyx/graphql-php 设置服务器。由于 GraphQL 查询已经必须包含结果数据结构,我不太确定如何获取动态数据。假设我查询包含不同元素类型的内容,我的最终结构应该如下所示:

我怎样才能为这个例子写一个查询?

内容部分的类型定义如何?有一组已定义的元素类型(标题、图片、评论等),但它们的顺序和元素数量是未知的,它们只有一个字段,类型,共同点。在我的前端编写查询时,我对内容结构一无所知。内容部分的 graphql-php 类型定义会是什么样子?我在网上找不到任何类似的例子,所以我不确定是否可以在这个用例中使用 GraphQL。作为额外信息,我总是想查询整个内容部分,而不是单个元素或字段,总是要查询所有内容。

0 投票
1 回答
3163 浏览

graphql - GraphQL 在子解析器中过滤父数据

我试图弄清楚如何使用 GraphQL 在父子关系中实现自下而上的过滤。

考虑以下对停车场和可用停车位进行建模的基本类型层次结构:

我想以一种使我能够检索至少有一个免费停车位的所有停车场的方式实现我的解析器。

我正在使用的 GraphQL 的具体实现是基于 PHP 的,可在此处获得,但任何基于 JS 的实现都非常有助于为我指明正确的方向。我知道有一些库支持使用“where:”参数进行过滤,但我必须自己实现这个机制,因为我使用的库不提供开箱即用的功能。

我探索的一个想法是在 ParkingLot 的解析器中简单地编写一个 JOIN 语句,但我觉得这不符合 GraphQL 的精神。

我想到的另一个想法是重写查询,使其首先检索 ParkingSlots,并且仅在其状态可用时才获取其父级。然而,这可能是计算密集型的,因为停车场将比停车位少,因此从父级到子级导航关系的计算密集度可能会更低。

您会建议哪种方法不能归结为更改类型层次结构(我无法做到这一点)。是否有一种方法可以在子节点的解析器中发生某些情况时立即拒绝父节点,或者这是否会被认为超出 GraphQL 实现的范围,更像是正在使用的实际库的功能?我想因为那里的一些库支持使用“where:”子句进行过滤,所以这必须是可能的,而且不应该很复杂。

0 投票
0 回答
85 浏览

php - 从“OperationDefinitionNode”对象中“提取”突变名称?

我正在使用webonyx/graphql-php和 Laravel。

我有一个middleware“捕获”所有graphql请求的单一请求,我想应用一些逻辑来过滤一些请求,requests具体取决于是否request为 amutation和哪个mutation是。

我在调用突变storeCC的地方“相交”graphql 查询(类似于这个)

query然后将使用解析GraphQL\Language\Parser成一个GraphQL\Language\AST\OperationDefinitionNode对象

在此处输入图像描述

我的问题是我怎样才能知道mutation名称(storeCC是这种情况。)使用OperationDefinitionNode?是否有另一种方法可以提取我从中调用的突变名称( storeCCquery string ) ?

0 投票
4 回答
4562 浏览

laravel - 与 RESTful 相比,GraphQL GET 响应时间很慢

我想测试一个 GraphQL 端点和一个 RESTful 端点的响应时间,因为我以前从未使用过 GraphQL,我即将在我的下一个 Laravel 项目中使用它。

所以我使用Lighthouse PHP 包从我的 Laravel 应用程序中提供一个 GraphQL 端点,并且我还创建了一个 RESTful 端点。

两个端点(GraphQL 和 RESTful)都旨在从我的本地数据库中获取所有用户(250 个用户)。

因此,根据我在这里注意到的测试,当我在 上测试这两个端点时Postman,RESTful 端点响应比 GraphQL 端点更快。

我能知道为什么 GraphQL 端点的响应比 RESTful 需要更多的时间,而两个端点都在获取相同的数据吗?

GET 请求的 GraphQL 端点结果(响应时间:88 毫秒) 在此处输入图像描述

POST 请求的 GraphQL 端点结果(响应时间:88 毫秒) 在此处输入图像描述

RESTful 端点结果(响应时间:44ms) 在此处输入图像描述

0 投票
0 回答
207 浏览

php - 在 PHP GraphQL 中获取参数类型

有没有办法在nuwave/lighthouserebing/graphql-laravel中获取参数的输入类型(两者都在幕后使用webonyx/graphql-php )?

给定这样的模式(省略不相关的部分):

这允许表达“email=x@y.com AND (id=1 OR id=2)”之类的查询,但参数是这样传递的:

有没有一种简单的方法来获得它,例如,email是 type FilterString