获取资源(GET)

如何使用 DrupalClient 获取 JSON:API 资源。


DrupalClient 带有用于从 Drupal 获取 JSON:API 数据的帮助程序。

您可以获取单个资源,getResource 或获取资源集合,getResourceCollection

每个帮助程序方法

  • 接受资源类型:node--articletaxonomy_term--tags
  • 一个 params 选项用于查询参数:fieldsincludefilter,...等等
  • 一个 withAuth 选项用于身份验证。请参阅 身份验证文档
  • 一个 deserialize 选项,如果您想获取原始 JSON:API 数据。

以下是获取 node--article 资源的调用示例

import { drupal } from "lib/drupal"
const articles = await drupal.getResourceCollection("node--article", {
params: {
"fields[node--article]": "title,created", // Fetch the title and created fields only.
sort: "-created", // Sort the articles by created date in descending order.
},
})

如果您正在构建复杂的查询参数,请参阅如何使用 Drupal JSON:API 参数 的指南。


getResource

按 ID 获取文章。

const article = await drupal.getResource(
"node--article",
"dad82fe9-f2b7-463e-8c5f-02f73018d6cb"
)

按 ID 获取区块。

const block = await drupal.getResource(
"block_content--basic",
"687f74ec-e599-4f5c-8175-f24510c77e83"
)

请参阅 getResource 的 API 参考。


getResourceFromContext

getStaticProps/getServerSideProps 中使用上下文获取文章。

如果您使用的是 国际化,这将自动使用在上下文中设置的 locale 获取本地化资源。

const article = await drupal.getResourceFromContext("node--article", context)

请参阅 getResourceFromContext 的 API 参考。


getResourceCollection

获取所有用户

const users = await drupal.getResourceCollection("user--user")

获取所有已发布的文章,按日期排序。

const articles = await drupal.getResourceCollection("node--article", {
params: {
"filter[status]": "1",
sort: "-created",
},
})

请参阅 getResourceCollection 的 API 参考。


getResourceCollectionFromContext

getStaticProps/getServerSideProps 中使用上下文获取文章。

如果您使用的是 国际化,这将自动使用在上下文中设置的 locale 获取本地化资源。

const articles = await drupal.getResourceCollectionFromContext(
"node--article",
context
)

请参阅 getResourceCollectionFromContext 的 API 参考。


getMenu

您需要安装 JSON:API 菜单项 模块才能使用 getMenu

按名称获取菜单。

const menu = await drupal.getMenu("main")

请参阅 getMenu 的 API 参考。


getView

您需要安装 JSON:API Views 模块才能使用 getView

按名称和 display_id 获取视图。

const view = await drupal.getView("promoted_items--block_1")

请参阅 getView 的 API 参考。


getSearchIndex

您需要安装 JSON:API Search API 模块才能查询您的 Search API 索引。

从 Search API 索引中获取结果。

const results = await drupal.getSearchIndex(indexName, {
params: {
filter: { name_of_field: value },
},
})

请参阅 getSearchIndex 的 API 参考。


身份验证

要在获取资源时进行身份验证请求,请使用 withAuth 选项。

请参阅 身份验证文档 以了解支持的身份验证方法。

const article = await drupal.getResourceCollection(
"node--article",
{
withAuth: // <-- Your auth method here.
}
)

更多

请参阅 示例 部分以获取数据获取示例。