GraphQL PHP 完整查询路径
GraphQL PHP full query path
我正在尝试在我的项目中实现对 graphql-php
的授权。我的想法是拥有一个用户访问数组,我可以在其中为每个用户组设置对特定查询和突变的访问权限,并在执行查询之前在 graphql 控制器中实现一个检查访问方法。
一种方法是自己解析请求,但我想知道是否有人知道如何访问查询的完整路径,正如我在 https://webonyx.github.io/graphql-php/error-handling/[=14= 中看到的那样]
<?php
[
'message' => 'My reported error',
'category' => 'businessLogic',
'locations' => [
['line' => 10, 'column' => 2]
],
'path' => [
'path',
'to',
'fieldWithException'
]
];
可以通过每个解析器函数获取的 ResolveInfo
对象在解析器中访问该路径。文档没有显示,但每个解析器的第四个参数是 ResolveInfo
(来自 webonyx 源 $resolveFn($source, $args, $context, $info)
)。简单得到是:
function ($root, $args, $context, $info) {
$path = $resolveInfo->path;
// your decisioning
}
你会根据它做决定吗
我正在尝试在我的项目中实现对 graphql-php
的授权。我的想法是拥有一个用户访问数组,我可以在其中为每个用户组设置对特定查询和突变的访问权限,并在执行查询之前在 graphql 控制器中实现一个检查访问方法。
一种方法是自己解析请求,但我想知道是否有人知道如何访问查询的完整路径,正如我在 https://webonyx.github.io/graphql-php/error-handling/[=14= 中看到的那样]
<?php
[
'message' => 'My reported error',
'category' => 'businessLogic',
'locations' => [
['line' => 10, 'column' => 2]
],
'path' => [
'path',
'to',
'fieldWithException'
]
];
可以通过每个解析器函数获取的 ResolveInfo
对象在解析器中访问该路径。文档没有显示,但每个解析器的第四个参数是 ResolveInfo
(来自 webonyx 源 $resolveFn($source, $args, $context, $info)
)。简单得到是:
function ($root, $args, $context, $info) {
$path = $resolveInfo->path;
// your decisioning
}
你会根据它做决定吗