API优先的Drupal:8.6版本有哪些新功能?- Wim Leers
Drupal 8 的 REST API 在 8.5 版本中实现了重要的成熟升级,而在 8.6 版本中,这一功能得到了进一步的优化和完善。本文将为您详细介绍 Drupal 8.6 版本中 REST API 的新功能和改进,希望能为您的开发工作带来帮助。
8.6 版本中的主要改进
安全文件上传的原生支持
在之前的版本中,开发者需要通过复杂的自定义 REST 资源插件或使用 base64 编码等方式来实现文件上传,这不仅繁琐而且容易出错。而在 Drupal 8.6 中,REST API 原生支持任何大小的安全文件上传,极大地简化了这一过程。
以下是一个文件上传的示例:
POST /file/upload/node/article/field_hero_image?_format=json HTTP/1.1
Content-Type: application/octet-stream
Content-Disposition: file; filename="filename.jpg"
[...二进制文件数据...]
在成功上传后,您可以使用返回的文件 ID 创建新的节点:
POST /node?_format=json HTTP/1.1
Content-Type: application/json
{
"type": [{"value": "article"}],
"title": [{"value": "Dramallama"}],
"field_hero_image": [{"target_id": 345345, "description": "有史以来最迷人的图像!"}]
}
“Term”实体的“parent”字段改进
在 8.6 版本中,“parent”字段现在被标准化为实体引用字段。这意味着开发者可以更方便地管理分类术语的层级关系。例如:
"parent": [{
"target_id": 2,
"target_type": "taxonomy_term",
"target_uuid": "371d9486-1be8-4893-ab20-52cf5ae38e60",
"url": "https://example.com/taxonomy/term/2"
}]
修复 alt 属性丢失问题
在之前的版本中,image 字段的 alt 属性在非规范化和保存后会丢失,这对 SEO 和无障碍访问造成了不利影响。8.6 版本修复了这一问题,确保 alt 属性能够正确保存。例如:
"field_image": [{
"target_id": 2,
"target_type": "file",
"target_uuid": "be13c53e-7f95-4add-941a-fd3ef81de979",
"alt": "美丽的骆驼!"
}]
修复后,该属性在保存和标准化后将保持不变。
更清晰的权限错误信息
在之前的版本中,当尝试修改没有权限的字段时,系统仅返回一个 403 错误,这让开发者难以理解问题的根源。而在 8.6 版本中,错误信息变得更加直观。例如:
旧版错误信息:
{"message": "更新'sticky'字段时拒绝访问。"}
新版错误信息:
{"message": "更新字段'sticky'时拒绝访问。需要'administrationnodes'权限。"}
这项改进大大提升了开发者的调试效率。
更友好的错误响应
当请求的格式不被支持时,8.6 版本的错误响应变得更加友好。例如,以下请求:
GET /entity/block/bartik_branding?_format=hal_json
返回的响应将包括支持的格式列表:
{
"message": "找不到指定格式hal_json的路由。支持的格式:json、xml。",
"_links": {
"alternate": [
{
"href": "http://example.com/entity/block/bartik_branding?_format=json",
"type": "application/json"
},
{
"href": "http://example.com/entity/block/bartik_branding?_format=xml",
"type": "text/xml"
}
]
}
}
这为开发者提供了更明确的指导。
REST 测试覆盖的优化
在 8.6 版本中,提供实体类型的模块现在负责其自身的 REST 测试。这种改进确保了每个模块都优先支持 HTTP API,从而进一步推动了 Drupal 的 API-First 战略。
总结
Drupal 8.6 的 REST API 改进显著提升了开发者的使用体验,无论是文件上传、错误信息提示,还是测试覆盖,都变得更加高效和直观。这些改进不仅让开发者的工作更加轻松,也为 Drupal 成为真正的 API-First 平台奠定了坚实的基础。
原文链接: https://wimleers.com/blog/api-first-drupal-8.6
最新文章
- 使用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