2

我们有一个功能来检查地址是否有效。

起初,网址就像

/address/validate/{city}/{state}/{zipCode}

但后来我认为地址的所有参数只是一个资源。所以我把它改成了

/address/validate/{city}.{state}.{zipCode}

我不确定哪个更好,你的建议是什么?

4

4 回答 4

4

在这种情况下,我会去/address/validate?city={city}&state={state}&zipcode={zipCode}

为什么?好吧,这只是我的意见。但是将路径(uris)视为表示的唯一标识符。这通常是您的模型域的一部分。由于您没有存储(大概)验证结果,因此只需创建一个验证资源。

将其视为一种方法。参数是查询参数。

因此,这样做,验证(是否有效)的表示由参数修改。

将休息视为一种表示,在您的示例中,我猜它/address/作为一种资源存在,并且它在您的数据模型上有一个表示。因此,您可以POST, PUTand orGET来创建、修改和检索。

但如果你想要一个,/address/validate这可能是验证的结果。所以我会用我的例子。

于 2012-09-21T08:00:32.567 回答
0

第一。当然,它是有效的 android 可解析 uri

于 2012-09-21T08:00:07.667 回答
0

我认为后者是更好的选择。如果用户稍后要验证任何参数,并且如果您添加支持,那么省略参数似乎更合乎逻辑,而不是担心子路径的顺序。这最终取决于设计您的应用程序也是如此,因为 API 设计对于某些域比其他域更有意义。我也会在参数之间添加 & 。

于 2012-09-21T08:02:30.563 回答
0

我认为两者都不是有效的宁静 URL。

您的描述可以被认为是“我们需要创建地址资源并对其进行验证”。为什么不只是 POST 来/address创建一个地址资源,其中包含给定的城市、州和邮政编码作为通过 POST 传递的数据。现在在该逻辑中,您将验证是否可以创建资源。如果可以,那么您将创建它并返回该资源的唯一引用,该引用将在后续请求中使用/address/:id/...。否则,如果发生验证错误,您将返回 HTTP 错误代码400 Bad Request

在我看来,这可能更“宁静”。

于 2012-09-21T08:23:44.233 回答