logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll
04/09/2025, by Ivan

JSON:API heeft veel concepten in de specificatie, die hier niet allemaal gedocumenteerd zijn. Gebruikers van de module hoeven echter niet alle concepten van de specificatie volledig te begrijpen om productief te kunnen werken met deze module.

04/09/2025, by Ivan

集合(Collections) 是资源的列表。在解耦站点中,你会用它们在客户端创建诸如“新内容(New Content)”列表或“我的内容(My content)”版块之类的东西。

然而,当你对诸如 /jsonapi/node/article 这样的集合端点发起未加筛选的请求时,你只会得到你被允许查看的所有文章。

没有筛选器(filters),你就无法只获取你的文章,或只获取关于羊驼的文章。

本指南将教你如何像专业人士一样构建筛选器。

快速开始

最简单、最常见的筛选器是键值筛选(key-value filter):

04/09/2025, by Ivan

简而言之:使用类似 ?include=field_comments.uid 的查询字符串,可以一次性包含 field_comments 引用的所有实体,以及这些实体上 uid 引用的所有实体!


JSON:API 通过允许你指定关系路径并将其包含在响应文档中,帮助你减少 HTTP 请求。如何实现呢?

获取单个资源

获取文章

假设你有一篇带有两条评论的文章,并且这两条评论的作者是同一个人。如果不使用 includes,要获取这些数据,你需要先请求 GET /jsonapi/node/article/some-random-uuid

04/09/2025, by Ivan

分页可能是一个看似简单却复杂的话题。很容易陷入陷阱而没有遵循最佳实践。本页将帮助你“正确”地实现分页。换句话说,如果你阅读并理解本页的内容,我们认为你的客户端会更加健壮、具有前瞻性,并且让你未来的开发更轻松。

如果你只记住本指南中的一件事,那就是:不要自己构造分页 URL

JSON:API 模块返回的每个分页响应中,已经包含了指向集合下一页的链接,你只需使用该链接即可。

在本文开头,我们将介绍 API 的一些重要特性,以及如何“正确”实现分页。在文末,你会找到一些常见问题与陷阱的解答

如何实现?

JSON:API 模块返回的每个分页响应中都内置了分页链接。下面是一个小示例:

04/09/2025, by Ivan

JSON:API 使得在单个请求中检索多个资源成为可能,这些路由称为“集合(collection)”路由。可以通过向基础资源路由发送 GET 请求来获取资源集合,例如 GET /jsonapi/node/article,并且包含 UUID。默认情况下,这将包含指定类型的所有资源。

过滤和排序在所有标准资源上默认可用。

请求头

以下请求头在所有 GET 请求中都是必须的,以确保 JSON:API 请求和响应的正确性。

  • Accept: application/vnd.api+json
  • Content-Type: application/vnd.api+json

以下请求头在示例中需要使用:

04/09/2025, by Ivan

本节包含每种请求类型的示例和信息:GET、POST、PATCH 和 DELETE

关于示例

所有示例都是可运行的示例,你可以在浏览器或 JSON 客户端(例如:Postman)中尝试。你需要一个标准的 Drupal 安装、一系列文章(Article 节点)以及启用 JSON:API 模块。

http://example.com/jsonapi/node/article/{{article_uuid}}

所有请求都使用 '/jsonapi' 路径前缀,这是 JSON:API 模块的默认值。在各种示例中,占位符使用双花括号语法表示,例如 {{...}}。请将它们替换为你环境中适用的数据。

要允许 POST、PATCH 和 DELETE 操作,请访问
/admin/config/services/jsonapi
并勾选 “接受所有 JSON:API 创建、读取、更新和删除操作” 选项。