【问题标题】:How to get Drupal 8 Views working with GraphQL / Gatsby.js如何让 Drupal 8 视图与 GraphQL / Gatsby.js 一起使用
【发布时间】:2020-02-06 20:19:06
【问题描述】:

我正在努力寻找答案,因为我不确定这是 Drupal、GraphQl 还是 Gatsby 问题。

我正在构建一个以 Gatsby.js 和 Drupal-8 作为数据源的投资组合站点(通过 gatsby-source-drupal)。

GraphQl 对节点、分类法、用户的查询,例如工作没有问题。 但我无法在我的 API 端点访问我创建的视图。

我创建了一个带有路径的工作视图页面。 我还将数据公开为一个块。 尝试将 REST-Export 作为序列化 JSON,但我无法使用 JSON:API 和 JSON-Views-Module。

我希望通过我的 /jsonapi/endpoint 的视图访问数据,但我的视图没有显示。

我无法理解这一点。我错过了什么?甚至可能吗?谢谢!

【问题讨论】:

  • 我相信 JSON:API 只公开实体(例如,节点、分类和用户)。您可以查询实体集合并在前端构建一个(排序的)视图。要通过 JSON 端点公开 Drupal 视图的结果,您需要 RESTful Web 服务和序列化模块(两者都在核心中),然后您将配置视图,以便它在您指定的任何路径上提供 REST 导出。
  • 感谢您的回答。我也相信只有实体被暴露。我希望有一种方法可以将视图数据“插入”到我的 JSON:API 端点中,但这似乎是不可能的。接下来我将尝试从我的 Gatsby 项目中访问两个不同的端点(来自 JSON:API 和我的 Views REST 导出)。我也可以再试一次'entityqueue'-module (drupal.org/project/entityqueue)。谢谢
  • 不客气。如果您能够在 Drupal 端成功地将视图导出为 JSON,那么问题可能在于您的前端设置。我还没有使用过 Gatsby 的 Drupal 源插件,但是如果您在问题中包含更多细节,这可能有助于引起比我更了解这方面事情的人的注意。干杯和好运-
  • 嘿@othermachines,感谢您澄清这一点!我现在通过“entityqueue”模块得到了我需要的东西(客户订购的实体列表)。这不是一个优雅的解决方案,但它确实有效。但令我感到沮丧的是,Drupal 最强大的功能之一无法在无头设置中如此轻松地使用。如果我早些时候遇到过这个问题,那么使用 Drupal 作为后端将是一个大问题。但我会进一步调查,如果我找到另一个解决方案,我会将其添加为对此问题的编辑。感谢您的宝贵时间!

标签: drupal graphql drupal-8 gatsby drupal-views


【解决方案1】:

TL;DR;你不能(来自 Drupal 的 JSON:API docsUnlike the REST module that comes with Drupal Core, JSON:API does not export Views results

如何获得过滤结果

gatsby-source-drupal 仅从 JSON:API 端点获取(默认为 /jsonapi)。

我认为您可以使用gatsby-source-drupal 提供的filters 选项来模拟Views 所做的事情。

Drupal 的 JSON:API Extras 模块还允许您设置一些默认过滤器。

Drupal documentation 关于过滤器

示例: ?filter[field_name]=value&filter[field_other]=value

最好的!

【讨论】:

    【解决方案2】:

    使用 JSON:API 模块,您确实无法获得视图,但还有 GraphQl moduleGraphQl views module 可以使视图可用于创建自定义 graphql 模式。祝你好运

    【讨论】:

      猜你喜欢
      • 2018-06-24
      • 1970-01-01
      • 2017-11-11
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 2021-08-14
      相关资源
      最近更新 更多