当前位置:  开发笔记 > 前端 > 正文

在REST服务中返回true/false?

如何解决《在REST服务中返回true/false?》经验,为你挑选了2个好方法。

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

我有这个/地址服务,例如我可以做一个POST /address/validation返回xml/json true或false的东西,但对我来说这似乎是非常不合适的.

另一种方法是做一个GET /address?street=xxx&nr=xxx&zipcode=xxx(和一些更多的参数)并返回200 OK,如果正确或404 Not not found,如果不正确,这可能更RESTful?

我开始做选项1)但是我想的越多,选项2)GET感觉更好......

想法?



1> Jacob Mattis..:

从RESTful角度来看,您实际上正在返回一个新资源,称之为AddressValidation,它将包含您的true或false值.所以一种方法是做一个POST /addressvalidation?street=xxx等等.我可以将结果作为JSON或使用状态代码返回.我不确定404是否合适; 您可能希望查看有关验证返回状态代码的讨论.

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



2> Darrel Mille..:

怎么样?

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

true


@Johan显然,您可以使用任何喜欢的媒体类型。文本/纯文本非常适合返回简单的标量值。不幸的是,当前对“ xml或json”的痴迷确实失去了REST通过使用许多不同的媒体类型而带来的一些好处。
@JohnHenckel说仅通过HTTP返回“对象”还不够,因为对象的定义取决于编程语言,平台或媒体类型规范。您显示的是一个JSON表示形式,其中包含JSON定义为的对象。那你可以回来。这是矫kill过正,但是会起作用。
推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有