我有一个相当普遍的问题:如何正确调用 RESTful Web 服务中的方法?
该方法应该只在数据库中进行转换并且不返回任何内容(所以没有 GET?!)。但是我也没有从客户端发送任何值(所以没有 PUT/POST ?!?)。
到目前为止,我正在使用 GET。把我读到这不是正确的方法......
提前致谢!
我有一个相当普遍的问题:如何正确调用 RESTful Web 服务中的方法?
该方法应该只在数据库中进行转换并且不返回任何内容(所以没有 GET?!)。但是我也没有从客户端发送任何值(所以没有 PUT/POST ?!?)。
到目前为止,我正在使用 GET。把我读到这不是正确的方法......
提前致谢!
REST 代表“代表性状态转移”。如果您没有传输代表您正在使用的事物的状态(在一个方向或另一个方向上),那么它本质上就不是RESTful 的,并且没有正确的方法来做到这一点并且仍然将其称为 REST。
如果你想要 RPC,那就做 RPC。只是不要称它为 RESTful。:)
你这样做的方式是通过 RPC。REST 有利于状态转移,但不适用于触发与状态转移无关的操作,例如影响大量记录的操作。我见过的大多数系统都使用 REST 完成 99% 的 UI 支持工作,而 RPC 完成最后 1% 的工作——不涉及状态传输、批量更新操作等的操作。您的目标应该是尽可能多地表达业务逻辑,以响应状态应用程序,为 RPC 保留极端情况。
如果您不传输任何类型的数据,那么实际上没有“正确”的方法可以做到这一点。您只是在调用一个方法,因此 REST 并不真正适用。
如今,带有“JSON Patch”有效负载的 PATCH 可能是一种可行的方法 - 但它仍然不是 RESTful。
将其称为 RPC 更合适,只要有文档记录,就没有理由不能在同一个 API 中。用您的 RPC 方法和 REST 资源分开记录您的 API。
例如