0

我正在使用 Symfony2 构建 RESTful 服务。

它有一个搜索功能,它返回一个搜索实体,该实体有一个结果数组。

如果用户执行不正确的搜索,我可能需要发送一些不同的消息。因此,我对如何构建响应的想法是:

为了一个好的搜索:

{
  "message": "OK",
  "search": <insert search object here>
}

和一个糟糕的搜索:

{
  "message: "Please double check your search in such and such fashion"
}

本质上,总是发送“消息”但并不总是发送搜索实体,因为如果他们的搜索以某些方式失败,则不会创建一个。

然后,我将始终返回 200 响应,即使他们的搜索条件已关闭。或者,如果没有结果。

这是否与 REST 背后的想法不谋而合,还是我应该将响应更改为 404 或其他什么?

谢谢!

4

1 回答 1

2

我认为这取决于您希望如何构建 RESTful 服务。当您说如果用户对我执行了不正确的搜索时,听起来用户在搜索中使用了错误的语法或做错了其他事情,而不是格式正确的搜索,它只是不返回任何结果。

如果是这种情况,我认为大多数 REST 服务会返回 400 - 错误请求,或者 400 范围内的其他错误代码。

另外,我认为大多数 REST 服务会在响应正文中返回搜索实体。

于 2013-10-31T00:11:24.910 回答