5

我有一个相当普遍的问题:如何正确调用 RESTful Web 服务中的方法?

该方法应该只在数据库中进行转换并且不返回任何内容(所以没有 GET?!)。但是我也没有从客户端发送任何值(所以没有 PUT/POST ?!?)。

到目前为止,我正在使用 GET。把我读到这不是正确的方法......

提前致谢!

4

4 回答 4

6

REST 代表“代表性状态转移”。如果您没有传输代表您正在使用的事物的状态(在一个方向或另一个方向上),那么它本质上就不是RESTful 的,并且没有正确的方法来做到这一点并且仍然将其称为 REST。

如果你想要 RPC,那就做 RPC。只是不要称它为 RESTful。:)

于 2013-03-11T14:26:14.207 回答
1

你这样做的方式是通过 RPC。REST 有利于状态转移,但不适用于触发与状态转移无关的操作,例如影响大量记录的操作。我见过的大多数系统都使用 REST 完成 99% 的 UI 支持工作,而 RPC 完成最后 1% 的工作——不涉及状态传输、批量更新操作等的操作。您的目标应该是尽可能多地表达业务逻辑,以响应状态应用程序,为 RPC 保留极端情况。

于 2014-03-06T23:01:43.140 回答
0

如果您不传输任何类型的数据,那么实际上没有“正确”的方法可以做到这一点。您只是在调用一个方法,因此 REST 并不真正适用。

于 2013-03-11T14:33:44.960 回答
0

如今,带有“JSON Patch”有效负载的 PATCH 可能是一种可行的方法 - 但它仍然不是 RESTful。

将其称为 RPC 更合适,只要有文档记录,就没有理由不能在同一个 API 中。用您的 RPC 方法和 REST 资源分开记录您的 API。

例如

RPC 和 REST 示例

请参阅:了解 HTTP API 的 RPC 与 REST

于 2020-06-24T21:54:02.773 回答