我有一个资源
/system/resource
我想问一下系统一个关于资源的布尔问题,这个问题无法通过客户端上的处理来回答(即我不能只获取资源并查看实际的资源数据 - 它需要在后端使用一些处理客户无法获得的数据).例如
/system/resource/related/otherresourcename
我希望这是返回true或false.有没有人有这种互动的最佳实践例子?
我想到的可能性:
使用HTTP状态代码,没有返回正文(闻起来不对)
返回纯文本字符串(True,False,1,0) - 不确定哪些字符串值适合使用,而且这似乎忽略了Accept媒体类型并始终返回纯文本
为我的每个支持媒体类型提出一个布尔对象,并返回适当的类型(带有单个布尔结果的JSON文档,带有单个布尔字段的XML文档).然而,这似乎很笨拙.
我不是特别想深入讨论RESTful系统的真正含义等等 - 我在标题中使用了REST这个词,因为它最好地表达了我正在设计的系统的一般风格(即使我可能正在抚育更多的是通过Web而不是真正的REST).但是,如果有人对真正的RESTful系统如何完全避免这个问题有一些想法,我会很高兴听到它们.
嗯,很难回答(你的例子对我来说有点过于抽象).
通常,您可以将此类布尔信息设计为资源数据或专用资源.当您想知道订单是否完成时(布尔问题),订单域的示例.请注意这是简化的例子(订单世界要复杂得多;)
将订单状态设计为数据负载
HTTP调用:
HTTP GET /orders
会给你200有效负载(json格式):
{ id : "1" , completed : "true" }
将订单状态设计为资源
HTTP调用:
HTTP GET or HEAD /orders/completed/1
现在要获得"布尔"答案,您可以检查HTTP响应状态是404还是200. 400会告诉订单尚未完成,200会告诉它已完成.
为了帮助你更多,你必须更具体,详细的是你的"布尔问题"?什么是真正的资源和相关资源?