【发布时间】:2016-10-22 20:49:23
【问题描述】:
我正在开发一个应用程序,我需要将对象列表传递给 REST 端点,该端点将进行一些计算并将结果返回给调用者。
这个问题更像是一个哲学问题,如何处理这种情况?
在 GET 请求中传递大量有效负载是一个坏主意。同时它不是真正的 POST/PUT 请求,因为它没有修改服务器上的任何状态。
以前有人遇到过这种情况吗?
【问题讨论】:
-
你能举个例子吗?通过将对象列表作为请求负载传递,您违反了 REST 而不是 HTTP。此外,如果服务器需要进行大量计算,它可能根本不是 REST,因为没有涉及特定资源,或者您的资源标识在语义上是错误的。
-
当然。所以我传入 List
,其中 MyObject 将包含几个字段(比如 FieldOne 和 FieldTwo)。服务器上还有其他数据也将用于计算。让我们将其称为 FieldWithServer。由于服务器不知道 MyObject,我必须通过它。获取 List 后,它将基于 FieldOne、FieldTwo 和 FieldWithServer 进行计算。如果我不够清楚,请告诉我。 -
GET 会返回什么?
-
它将返回一个不超过 4 个属性的对象。