获取资源(GET)
如何使用 DrupalClient 获取 JSON:API 资源。
DrupalClient
带有用于从 Drupal 获取 JSON:API 数据的帮助程序。
您可以获取单个资源,getResource
或获取资源集合,getResourceCollection
。
每个帮助程序方法
- 接受资源类型:
node--article
或taxonomy_term--tags
。 - 一个
params
选项用于查询参数:fields
,include
,filter
,...等等 - 一个
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. })
更多
请参阅 示例 部分以获取数据获取示例。