我们有一个功能来检查地址是否有效。
起初,网址就像
/address/validate/{city}/{state}/{zipCode}
但后来我认为地址的所有参数只是一个资源。所以我把它改成了
/address/validate/{city}.{state}.{zipCode}
我不确定哪个更好,你的建议是什么?
我们有一个功能来检查地址是否有效。
起初,网址就像
/address/validate/{city}/{state}/{zipCode}
但后来我认为地址的所有参数只是一个资源。所以我把它改成了
/address/validate/{city}.{state}.{zipCode}
我不确定哪个更好,你的建议是什么?
在这种情况下,我会去/address/validate?city={city}&state={state}&zipcode={zipCode}
为什么?好吧,这只是我的意见。但是将路径(uris)视为表示的唯一标识符。这通常是您的模型域的一部分。由于您没有存储(大概)验证结果,因此只需创建一个验证资源。
将其视为一种方法。参数是查询参数。
因此,这样做,验证(是否有效)的表示由参数修改。
将休息视为一种表示,在您的示例中,我猜它/address/
作为一种资源存在,并且它在您的数据模型上有一个表示。因此,您可以POST
, PUT
and orGET
来创建、修改和检索。
但如果你想要一个,/address/validate
这可能是验证的结果。所以我会用我的例子。
第一。当然,它是有效的 android 可解析 uri
我认为后者是更好的选择。如果用户稍后要验证任何参数,并且如果您添加支持,那么省略参数似乎更合乎逻辑,而不是担心子路径的顺序。这最终取决于设计您的应用程序也是如此,因为 API 设计对于某些域比其他域更有意义。我也会在参数之间添加 & 。
我认为两者都不是有效的宁静 URL。
您的描述可以被认为是“我们需要创建地址资源并对其进行验证”。为什么不只是 POST 来/address
创建一个地址资源,其中包含给定的城市、州和邮政编码作为通过 POST 传递的数据。现在在该逻辑中,您将验证是否可以创建资源。如果可以,那么您将创建它并返回该资源的唯一引用,该引用将在后续请求中使用/address/:id/...
。否则,如果发生验证错误,您将返回 HTTP 错误代码400 Bad Request
。
在我看来,这可能更“宁静”。