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

布尔REST结果的最佳实践

如何解决《布尔REST结果的最佳实践》经验,为你挑选了1个好方法。

我有一个资源

  /system/resource

我想问一下系统一个关于资源的布尔问题,这个问题无法通过客户端上的处理来回答(即我不能只获取资源并查看实际的资源数据 - 它需要在后端使用一些处理客户无法获得的数据).例如

  /system/resource/related/otherresourcename

我希望这是返回true或false.有没有人有这种互动的最佳实践例子?

我想到的可能性:

使用HTTP状态代码,没有返回正文(闻起来不对)

返回纯文本字符串(True,False,1,0) - 不确定哪些字符串值适合使用,而且这似乎忽略了Accept媒体类型并始终返回纯文本

为我的每个支持媒体类型提出一个布尔对象,并返回适当的类型(带有单个布尔结果的JSON文档,带有单个布尔字段的XML文档).然而,这似乎很笨拙.

我不是特别想深入讨论RESTful系统的真正含义等等 - 我在标题中使用了REST这个词,因为它最好地表达了我正在设计的系统的一般风格(即使我可能正在抚育更多的是通过Web而不是真正的REST).但是,如果有人对真正的RESTful系统如何完全避免这个问题有一些想法,我会很高兴听到它们.



1> manuel aldan..:

嗯,很难回答(你的例子对我来说有点过于抽象).

通常,您可以将此类布尔信息设计为资源数据或专用资源.当您想知道订单是否完成时(布尔问题),订单域的示例.请注意这是简化的例子(订单世界要复杂得多;)

将订单状态设计为数据负载

HTTP调用: HTTP GET /orders

会给你200有效负载(json格式): { id : "1" , completed : "true" }

将订单状态设计为资源

HTTP调用: HTTP GET or HEAD /orders/completed/1

现在要获得"布尔"答案,您可以检查HTTP响应状态是404还是200. 400会告诉订单尚未完成,200会告诉它已完成.

为了帮助你更多,你必须更具体,详细的是你的"布尔问题"?什么是真正的资源和相关资源?

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有