Symfony API Platform:如何通过Postman获取application/json格式响应
解决API Platform返回Hydra集合格式而非单个JSON资源的问题
核心问题:请求头设置错误
你错误使用了Accept-Language请求头控制响应格式,这个头用于指定语言偏好,和媒体类型无关。控制响应格式的正确请求头是**Accept**。
正确的Postman设置步骤
- 打开请求的「Headers」标签页
- 添加或修改
Accept请求头,将值设为application/json - 删除错误的
Accept-Language: application/json配置
确认请求路径是否正确
如果目标是获取单个用户资源,请求URL必须指向具体的资源ID,比如:
/symfony_test_server/public/apip/users/1
而非集合路径/symfony_test_server/public/apip/users——这个路径无论如何都会返回集合结构的响应,即使设置了正确的Accept头。
补充说明
API Platform通过Accept头进行内容协商:
- 请求单个资源URL时,设置
Accept: application/json会直接返回单个资源的JSON结构 - 请求集合URL时,返回的是包含
hydra:member数组的集合格式JSON,需自行提取数组内的单个资源对象
内容的提问来源于stack exchange,提问作者Laurent
相关产品推荐
相关产品推荐

