Drupal 10 JSON API 使用指南:标准化数据交换与高效开发
JSON 构建 API 的标准化规范。它通过提供清晰一致的数据交换结构,简化了 API 的创建和使用过程。在 Drupal 中,JSON API 是访问数据结构(如实体类型、捆绑包、字段等)的核心模块。它支持构建解耦应用程序或将 Drupal 与其他系统集成的能力。
启用 JSON API
要启用 JSON API,请访问 /admin/config/services/jsonapi 页面,并勾选“接受所有 JSON API 创建、读取、更新和删除操作”选项,以允许 POST、PATCH 和 DELETE 操作。


了解 JSON API
在 JSON API 中,每个资源都必须具有全局唯一的 type 属性。在 Drupal 的 JSON API 实现中,该属性从实体类型的机器名称和捆绑包的机器名称派生。例如:
- 文章类型的资源为
node--article - 页面类型的资源为
node--page - 用户类型的资源为
user--user
JSON API URL 结构示例
以下是 JSON API 支持的 HTTP 方法及其 URL 结构示例:
- GET | POST:
/jsonapi/node/article - PATCH | DELETE:
/jsonapi/node/article/{uuid}
GET 请求
GET 请求用于检索数据,可以是资源集合或单个资源。所有 GET 请求需包含以下请求头:
Accept: application/vnd.api+json
响应
- HTTP 200 响应:返回的响应体包含单个文章节点的 JSON API 对象,包括属性、关系和链接。
POST 请求
要发送 POST 请求,请确保包含以下请求头:
Accept: application/vnd.api+json
此外,您可以通过 /session/token 获取访问令牌。
基本 POST 请求示例
URL: http://example.com/jsonapi/node/article

响应
- HTTP 201(已创建) 响应:返回的响应体包含所创建实体的 JSON API 对象。
DELETE 请求
所有 DELETE 请求需包含以下请求头:
Content-Type: application/vnd.api+json
基本 DELETE 请求示例

响应
- HTTP 204(无内容) 响应:响应体为空。
PATCH 请求
所有 PATCH 请求需包含以下请求头:
Accept: application/vnd.api+json
Authorization: Basic
响应
- HTTP 200 响应:返回的响应体包含更新后的实体的 JSON API 对象。
JSON API 的特性
-
自动序列化
JSON API 自动处理数据的序列化。当从 Drupal 请求数据时,它会自动转换为符合 JSON API 的格式,从而减少开发者编写自定义序列化代码的需求。
-
分页和排序
JSON API 开箱即用地支持分页和排序功能。这对于处理大型数据集尤为重要,能够帮助客户端高效检索数据。
-
关系支持
JSON API 允许在单个请求中检索相关资源,从而减少获取关联数据所需的 API 调用次数。
-
过滤和查询
通过 URL 中的查询参数,开发者可以对 Drupal 资源进行过滤和查询,仅请求所需的数据。
在 Drupal 10 中使用 JSON API 的好处
-
简化开发
JSON API 提供了与 Drupal 数据交互的标准化方式,显著简化了 Web 应用程序的开发。
-
提高效率
自动序列化和关系支持降低了处理数据的复杂性,从而提升了开发效率。
-
广泛兼容性
JSON API 在多种编程语言和框架中得到广泛支持,使得 Drupal 能够轻松与其他技术集成。
-
可扩展性
JSON API 的 RESTful 设计使得 Drupal 网站能够轻松扩展,以应对更多客户端和请求。
结论
JSON API 是一个功能强大的工具,能够以灵活且标准化的方式公开内容。它不仅简化了构建解耦应用程序和与其他服务集成的过程,还促进了 API 设计中的最佳实践。无论是开发者还是企业,使用 JSON API 都能显著提升开发效率和系统可扩展性。
原文链接: https://www.tothenew.com/blog/introduction-of-drupal-jsonapi/
最新文章
- 使用Cucumber框架进行API测试的Playwright示例
- 2025年提升软件质量的十大API测试工具
- 强力监控!Spring Boot 3.3 集成 Zipkin 全面追踪 RESTful API 性能
- API安全:内部审计师快速参考指南
- 什么是 REST API?
- GitLab的API调用指南
- 全球支付api解析:运作原理与使用指南
- 创建RESTful且开发者友好的API指南
- 最佳免费API用于教育应用集成
- Uber Ride API 开发指南:实现价格估算、路径调度与司机管理系统
- 用 Poe-API-wrapper 连接 DALLE、ChatGPT,批量完成AI绘图或文字创作
- 2025年20大自动化API测试工具 – HeadSpin