微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用 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 举报,一经查实,本站将立刻删除。