正确的HTTP方法删除文档属性

时间:2018-10-16 09:45:33

标签: mongodb http express

我想使用sth删除文档的属性(在monngodb中)。如$ pull / $ unset。此操作需要自己处理。由于此路由的目的是删除属性,因此我陷入了2个HTTP方法DELETE和PATCH之间。

DELETE用于删除整个文档,而PATCH主要用于修改现有属性。我的操作某种程度上具有这两个属性,所以我想知道哪种HTTP方法更适合这种情况。我在网上找不到任何描述或讨论。很高兴听到大家的声音

1 个答案:

答案 0 :(得分:1)

这是一个主观的问题,但我认为仍然值得一试。我认为您可以执行任何一种操作,但随后您将希望使请求看起来像所选的方法。

我个人会选择DELETE,因此我将URI定位为文档,然后是docs属性。这将有效地使您的文档属性看起来像文档本身。如果您有以下代表文章/博客文章的文档。

{
  "id": "abcdefg",
  "title": "My fantastic article",
  "content": "This is my fantastic article that you're reading",
  "author_username": "elliotblackburn",
  "topic": "wonder"
}

要删除整个文档,您可以请求DELETE /articles/abcdefg或删除属性,您可以拥有DELETE /articles/abcdefg/topic,其中abcdefg代表文档ID。

所有文档都是同一事实是实现细节,但是就用户而言,“主题”现在可以作为自己的文档来处理。这并不一定要实现该主题的所有端点,但是您可以选择这样做。