logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动
04/09/2025, by Ivan

此页面展示了 JSON:API 模块 的各种 POST 请求示例。

POST 请求用于创建新资源。如果需要修改资源,请使用 PATCH。

JSON:API 规范(因此 JSON:API 模块)仅支持每个 POST 请求创建一个资源。对于 Drupal,这意味着无法(仅使用该模块)在一个请求中创建多个实体。如果你想在创建父实体的同时创建被引用的实体,就需要这种功能。虽然 JSON:API 不支持此行为,但像 Subrequests 这样的模块可以帮助实现。

启用创建操作

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

04/09/2025, by Ivan

有些站点可能不希望暴露某些 JSON:API 资源类型或字段,或希望重命名字段以提供更简洁的接口。

为允许进行这些更改,JSON:API 会以事件名 ResourceTypeBuildEvents::BUILD 派发一个 ResourceTypeBuildEvent 事件对象。请参阅订阅与派发事件以了解如何使用这些事件。

事件订阅器可以调用以下方法:

04/09/2025, by Ivan

JSON:API 完全基于实体(entity)。也就是说,它无法处理业务规则,或执行那些无法被视为 “CRUD” 的操作。诸如注册新账号、登录用户、请求新密码等业务逻辑属于 JSON:API 的范畴。这些能力中有许多已经由 Drupal 核心提供。

下面给出一份常见需求与解决方案的非完整清单。

相关路径如下:

  • /session/token
  • /user/register
  • /user/login
  • /user/login_status
  • /user/logout

获取会话令牌(session token)

获取令牌

curl \
  --request GET http://drupal.d8/session/token

响应主体会以纯文本(非 JSON)的形式返回一个令牌。

04/09/2025, by Ivan

JSON:API 模块旨在将通过 Drupal 的 Entity API、Field API 和 Typed Data API 定义的数据模型,按符合 JSON:API 规范 的方式通过 API 暴露出来,以便与由 Drupal 管理的数据(实体)进行交互。

在此过程中,它会遵循 Drupal 针对这些数据的所有安全措施:

04/09/2025, by Ivan

在 React 中理解 CORS

CORS 长期以来一直让开发者(尤其是入门者)感到困惑——甚至沮丧。这个概念并不直观,特别是当你使用 React、Angular 或 Vue 等框架构建单页应用(SPA)并尝试与第三方 API 交互时。

在本指南中,我会从零开始帮助你理解 CORS。我们将搭建一个简单的 React 应用和一个 Express 服务器,来演示究竟是什么触发了 CORS 错误以及它们为何发生。更重要的是,我会带你逐步了解多种解决方法——既包含通用思路,也包含在 React 环境中的具体做法。


什么是 CORS?

CORS(跨域资源共享,Cross-Origin Resource Sharing)是一种协议,用于规范 Web 应用如何从不同来源(origin)的服务器请求资源。就像 HTTPS 规定了安全通信的规则一样,CORS 规定了跨域请求的规则。