请求参数冲突的 HTTP 状态



我有一个非常简单的问题,但很难找到一个正式的标准。我有一个这样的 REST 端点。

/hotels?country=someCountry&city=someCity

如果有人要这样称呼它

酒店?国家=美国&城市=东京

客户端提供的参数中将存在冲突。响应(错误响应(的相应状态代码是什么?我知道发送 400 - 错误请求是可以的。但我需要一个更具体的答案。

编辑

我知道这可以通过/{country}/{city}/hotels方式轻松解决。在这里,我需要从更通用的角度来解决这个问题。

另一个例子

/transactions?startDate=someDate&endDate=someLaterDate

我尝试

/transactions?startDate=2012-09-03&endDate=2001-08-04

我什至不会发送错误响应,而是返回状态代码200和一个空列表。这个请求没有错,只是数据库中没有给定查询的匹配项,然后返回[] .然后,必须在客户端中适当地处理此问题。

如果该端点甚至不存在(例如没有/hotels的路由(,那么404将是正确的响应。

我想

我会对它进行一些不同的旋转。与其说这是一场冲突,不如说"东京在美国不存在

"。

我认为这是一个更好的思考方式。还有一些城市存在于您可能意想不到的国家/地区。(加拿大有一个巴黎,美国有一个(。

因此,如果您只是将其视为有效国家/地区的"不存在的城市",也许它只是一个404。

提示:您应该使用标准的 ISO 2 字母国家/地区代码。它们是缩写国家/地区的最常见方式。

相关内容

最新更新