让我们说我有以下端点:
/operations/needed
将会有两个回应:
什么是回应的好习惯? 这是我在想的一些东西:
A
{"operationNeeded":true}
B
OK->Not needed
Bad_request->Needed
C
{"operation":"/operations"} -> Needed
{"operation":null} -> Not needed
哪个会是首选? (为什么?) 请记住,无论好坏,我们都没有在其他任何地方使用HATEOAS类型的响应。
答案 0 :(得分:1)
REST已针对大颗粒超媒体传输进行了优化(请考虑“网页”)。尝试交流一点信息确实不是最佳选择。
一种常见的方法是注意到HTTP可以区分“不存在”和“空”。当资源为空时,我们可以发送带有内容长度标头的200响应,也可以发送完全没有实体主体的204。如果资源没有可用的表示形式,则使用404是合适的。
因此,您会发现使用204/404来指示是否设置了标志的API。
Github's Starring API是采用这种方法的示例。
最好将其视为资源,其表示形式会根据是否设置该位而改变。
您的Add13
方法可能是集合中最“ RESTful”的-提供/删除与其他资源的链接作为与REST客户端通信哪个应用程序的一种方式是正常的状态转换当前可用。同样,请考虑网页-仅当有更多项目要查看时才有“第2页”链接,而当您已经结束时则没有“下一个”链接,依此类推。这就是HATEOAS方法。
但是所有这些都是“好”的。