用于删除请求的 Slim Framework 和 getParsedBody

Slim Framework and getParsedBody for delete request

我正在尝试获取正文中传递的参数(从表单)作为对 API 的 DELETE 请求 as

$allVars = $request->getParsedBody();

但由于某些原因,在 POST 和 PUT 请求正常工作时它将为空。

有什么建议吗?

根据 HTTP specification,服务器应忽略 DELETE 请求主体,因为没有“定义的语义”:

A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.

为 DELETE http 请求使用请求正文有点不寻常。许多 HTTP 客户端库不支持它,因此它迫使开发人员从低级别构造请求。另一件事,我猜想一些流行的网络服务器如果将它们用作代理,默认情况下会像 GET 一样切割 DELETE 请求的主体,因此需要对它们进行额外的配置。

我会将它们放在 URL 路径或 URL 查询参数中,例如:

DELETE /resource/1234