在REST服务中返回true / false?

我正在设计一个REST服务,并且需要检查地址是否被正确输入。 我在想的是如何设计一个REST接口来检查完整的街道地址是否有效。

我有这个/地址服务,例如我可以做一个POST /address/validation返回一个xml / json true或false,但是对我来说这似乎不是很重要。

另一种方法是做一个GET /address?street=xxx&nr=xxx&zipcode=xxx (以及更多的参数),并返回200 OK,否则返回404如果不正确,可能会更加REST-ful?

我开始做选项1),但我更多地考虑它,选项2)与GET感觉更好...

想法?


从RESTful角度来看,您确实会返回一个新资源,称之为AddressValidation,它将包含您的真实值或错误值。 所以一种方法是做一个POST到/addressvalidation?street=xxx等。我会很好地返回结果作为JSON或使用状态代码。 虽然我不确定404是否合适。 你可能想看看这个关于验证返回状态代码的讨论。

当你提出这个问题时,我有同样的问题: GET /address?street=xxx&nr=xxx&zipcode=xxx方法。 对我来说,如果它返回404,这意味着地址是字面上没有找到(即不存在于数据库中),而不是它是无效的(例如,邮政编码是无效的格式;不能有任何这样的地址)。 再次看到链接的讨论; 似乎400是一个更合适的回应。


怎么样?

GET /addressValidity?street=xxx&nr=xxx&zipcode=xxx
=> 
200 OK
Content-Type: text/plain

true

我觉得做POST和返回状态代码(如果正确的话200确定,如果不正确则404找不到)比较安静。 因为你没有获得某些东西,所以GET看起来不合适。 您正在向服务器发送一些信息,并执行一些处理(验证)并返回一些响应。

链接地址: http://www.djcxy.com/p/45397.html

上一篇: Returning true/false in REST service?

下一篇: What to do about huge resources in REST API