REST端点的最佳做法是有助于决策

时间:2019-07-19 10:11:03

标签: rest api api-design

让我们说我有以下端点:

/operations/needed

将会有两个回应:

  1. 需要操作
  2. 不需要操作

什么是回应的好习惯? 这是我在想的一些东西:

A

{"operationNeeded":true}

B

OK->Not needed
Bad_request->Needed

C

{"operation":"/operations"} -> Needed
{"operation":null} -> Not needed

哪个会是首选? (为什么?) 请记住,无论好坏,我们都没有在其他任何地方使用HATEOAS类型的响应。

1 个答案:

答案 0 :(得分:1)

REST已针对大颗粒超媒体传输进行了优化(请考虑“网页”)。尝试交流一点信息确实不是最佳选择。

一种常见的方法是注意到HTTP可以区分“不存在”和“空”。当资源为空时,我们可以发送带有内容长度标头的200响应,也可以发送完全没有实体主体的204。如果资源没有可用的表示形式,则使用404是合适的。

因此,您会发现使用204/404来指示是否设置了标志的API。

Github's Starring API是采用这种方法的示例。

最好将其视为资源,其表示形式会根据是否设置该位而改变。

您的Add13方法可能是集合中最“ RESTful”的-提供/删除与其他资源的链接作为与REST客户端通信哪个应用程序的一种方式是正常的状态转换当前可用。同样,请考虑网页-仅当有更多项目要查看时才有“第2页”链接,而当您已经结束时则没有“下一个”链接,依此类推。这就是HATEOAS方法。

但是所有这些都是“好”的。