我已经完成了REST服务的基础知识,在我的名词周围实现了“标准”列表和GET / POST / PUT / DELETE动词。
然而,我正在使用的客户群也希望拥有更强大的操作。我在后端使用Mongo DB,并且很容易暴露“更新”操作。 This page描述了Mongo如何进行更新。
为Mongo更新函数的“标准”和“objNew”部分编写一个带有几个JSON / XML /任何参数的页面很容易。也许我创建一个类似http://myserver.com/collection/update的页面,它接受一个POST(或PUT?)请求,请求主体包含该数据。擦除输入以进行恶意查询并强制执行安全性,我们已经完成了。一块蛋糕。
我的问题是:以RESTful方式公开此内容的“最佳”方式是什么?显然,我上面描述的方法不是犹太教,因为“更新”不是名词。这种事情似乎更适合SOAP / RPC方法,但其余的服务已经使用REST over HTTP,我不希望用户必须进行两种不同类型的调用。
思想?
答案 0 :(得分:2)
通常,我会将其处理为:
URL /收集/项目
GET集合:返回集合资源的表示
GET collection / item:返回项目资源的表示 (内容类型的可选URI参数:json,xml,txt等)
POST collection /:创建一个新项目(如果是通过XML,我使用XSD进行验证)
PUT集合/项目:更新现有项目
DELETE collection / item:删除现有项目
这有帮助吗?
答案 1 :(得分:1)
因为您知道它不适合REST,所以您只需要尽力并发明一个标准来使其工作。到目前为止,Mongo的更新功能已从REST中删除,我实际上允许在集合上使用PUT。忽略我的例子中的参数,我没有想太多。
或者: