如何使用 GraphQL 正确获取嵌套集合?

问题描述

我有 2 个实体:

ENTRYPOINT ["python3","train.py"]

两个实体都作为 API 资源公开(我使用的是 DTO)

User
Book

我只想允许管理员查看两个实体的集合,但我还需要能够获取嵌套集合:

//src/Entity/User.PHP
#[ApiResource(
    collectionoperations: [
    'get' => [
        'security' => 'is_granted("ROLE_ADMIN")'
    ],],graphql: [
    'collection_query' => [
        'security' => 'is_granted("ROLE_ADMIN")'
    ],'item_query',itemOperations: [
    'get',denormalizationContext: ['groups' => ['user:write']],normalizationContext: ['groups' => ['user:read']],output: UserOutput::class
)]
...

//src/Entity/Book.PHP
#[ApiResource(
    collectionoperations: [
    'get' => [
        'security' => 'is_granted("ROLE_ADMIN")'
    ],denormalizationContext: ['groups' => ['book:write']],normalizationContext: ['groups' => ['book:read']],output: BookOutput::class
)]
...

我可以使用 REST 获取集合,但是如何使用 GraphQL 获取集合?我很困惑。在这种情况下我该怎么办?

更新:

query {
    user(id: "/api/users/01F63NKKN7DWYB74K6G5N33DPP") {
    id
    books{
      edges{
        node{
          id
        }
      }
    }
    }
}

Result: Access Denied.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)