1

我已经完成了 REST 服务的基础知识,围绕我的名词实现了“标准”列表和 GET/POST/PUT/DELETE 动词。

但是,我正在与之合作的客户群也希望拥有更强大的操作。我在后端使用 Mongo DB,很容易公开“更新”操作。 本页描述了 Mongo 如何进行更新。

编写一个为 Mongo 更新函数的“标准”和“objNew”部分提供几个 JSON/XML/任何参数的页面很容易。也许我制作了一个像http://myserver.com/collection/update这样的页面,它接受一个 POST(或 PUT?)请求,请求正文包含该数据。清理输入以进行恶意查询并强制执行安全性,我们就完成了。小菜一碟。

我的问题是:以 RESTful 方式公开它的“最佳”方式是什么?显然,我上面描述的方法不是犹太教的,因为“更新”不是名词。这种事情似乎更适合 SOAP/RPC 方法,但服务的其余部分已经在使用 REST over HTTP,我不希望用户必须进行两种不同类型的调用。

想法?

4

2 回答 2

2

通常,我会将其处理为:

  • 网址/集合
  • 网址/集合/项目

  • GET 集合:返回集合资源的表示

  • GET 集合/项目:返回项目资源的表示(内容类型的可选 URI 参数:json、xml、txt 等)

  • POST collection/:创建一个新项目(如果通过 XML,我使用 XSD 来验证)

  • PUT 集合/项目:更新现有项目

  • DELETE 集合/项目:删除现有项目

这有帮助吗?

于 2010-01-19T16:53:42.313 回答
1

因为您知道它不适合 REST,所以您只需要尽力而为并发明一个标准来使其工作。Mongo 的更新功能到目前为止已从 REST 中删除,我实际上允许在集合上放置 PUT。忽略我示例中的参数,我没有考虑太多。

  • PUT 集合?set={field:value}
  • PUT 集合?pop={field:1}

或者:

  • PUT 集合/pop?field=1
于 2010-01-20T06:48:32.733 回答