Http一次获取并删除多个实体请求(PHP)
正如标题所说 - 它有效吗?Http一次获取并删除多个实体请求(PHP)
做我的意思
如果我打电话与端点GET 是有效的,然后做
http://some.thing/more?id[]=12&id[]=4&id[]=65
让服务器返回多个实体一次?
我在rfc文档中看不到任何提示。另外 - 查看状态代码返回 - 它似乎不是这样构建的。
所以我想只有一个实体的GET或DELETE或HEAD请求?
编辑:语言是PHP的BTW
EDIT2:这是我想避免:https://stackoverflow.com/a/18141127/3411766
我不想使用身体。
您可以制作有效的HTTP请求,但违背HTTP的设计。我正在关注正确的HTTP设计。
首先,当您执行GET请求时,您始终会收到资源的表示形式。即使URL表示类似“资源集合”的东西,HTTP中也没有严格的定义。该资源列表仍然可以代表来自您的数据模型的多个“实体”。
因此,致电/users
可以返回多个用户实体。
同样,对用户的DELETE
可能表示您将删除整个/users
集合及其中的所有内容。
我看到的一个问题,并没有一个很好的答案是您正在使用查询字符串来删除多个资源。我认为这是好的GET
/HEAD
,但我质疑它是否正确DELETE
以及。这对我来说肯定感觉有点“奇怪”,因为我觉得DELETE
/users?foo=bar
应该删除/users
,并且通常会由于大多数框架的工作原因。应该是?我其实不确定。 REST并不是严格的标准,所以我们无法去那里找到答案,所以我得到的只是它感觉错了。我意识到你并不严格要求REST,所以从严格的HTTP角度来看,它绝对没问题。
但是,你可以组织你的网址并非像:
/users?id[]=12&id[]=4&id[]=65
,而是这样的事情:
/users/12,4,65
我看到别人这样做,而且感觉有点少对我错了。但这主要是猜测。
不管如果你对这样的多个实体做DELETE
,请求应该成功或者什么也不做。不接受部分成功,所以您可以使用通常的200/204响应代码来表示成功删除。
您的请求将如何知道返回哪种类型的响应,以及为什么要这样做? –
好吧,很明显,要使用单个调用返回多个实体。 – cottton