You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API-Platform实现Richardson Maturity Model level3相关问题咨询

API-Platform适配Richardson Maturity Model Level3解决方案

规范适配判断

Richardson Maturity Model Level3(HATEOAS级)要求响应中包含当前资源所有可执行操作的入口链接,仅返回资源自身URI的"@id": "/api/users/87"不符合完整规范要求,必须额外补充删除、更新、关联资源跳转等操作的对应链接才算达标。

配置问题修复

  • 首先卸载willdurand/hateoas-bundle,API Platform已原生内置HATEOAS支持,第三方bundle会与内置逻辑冲突,导致链接生成失效。
  • 406 Not Acceptable错误是由于请求头未匹配你配置的返回格式导致,请求时需要在Accept头指定application/hal+json,也可以调整api_platform.yaml配置兼容多格式避免错误,配置参考:
api_platform:
    formats:
        jsonhal: ['application/hal+json']
        json: ['application/json']
    patch_formats:
        json: ['application/merge-patch+json']
  • 操作链接无需手动配置,API Platform会自动根据你在实体类中#[ApiResource]注解声明的操作,生成对应HATEOAS链接。正确请求后返回的_links字段会自动包含所有允许的操作入口,示例返回如下:
{
  "@context": "/api/contexts/User",
  "@id": "/api/users/87",
  "@type": "User",
  "id": 87,
  "username": "test",
  "_links": {
    "self": {
      "href": "/api/users/87"
    },
    "patch": {
      "href": "/api/users/87"
    },
    "delete": {
      "href": "/api/users/87"
    },
    "collection": {
      "href": "/api/users"
    }
  }
}

验证方式

执行如下curl命令测试即可看到完整的HATEOAS响应:
curl -H "Accept: application/hal+json" <你的接口地址>/api/users/87

内容的提问来源于stack exchange,提问作者Drx85

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:57:03