【发布时间】:2014-03-16 19:01:08
【问题描述】:
我在使用 FOSRestBundle 实现本应简单的事情时遇到了麻烦。
如果我返回一个对象,它会按预期工作。 JSON 响应将类似于
{
id: ...,
property: ...
}
我想做的是在所有请求和状态代码上返回一个用于响应的信封,例如
{
meta: {
code: 200,
message: 'OK',
}
data: {
id: ...,
property: ...
}
}
这样,客户可以编写简单的代码来检测错误,其中的响应类似于:
{
meta: {
code: 400,
message: 'Your request failed because...',
}
data: {}
}
我想从多个控制器返回它,并且只在 JSON 或 XML 请求上返回它。我的第一个想法是使用 ResponseListener,检查请求的格式,并在需要时修改响应。或者,也许,只是设置一个类似的类
\Model\APIRequestFormatter,并从我的控制器,而不是做 return $entity; 做 return APIRequestFormatter->Format($entity);
这两种方法对我来说似乎都有缺陷,有人有什么建议吗?
【问题讨论】:
标签: symfony fosrestbundle