繁体   English   中英

如何在PHP API First App中处理PUT和DELETE HTTP请求?

[英]How to handle PUT and DELETE HTTP request in a PHP API First App?

我想在PHP中构建一个API第一个RESTful应用程序。 我从来没有尝试过这样做,所以我对如何处理PUTDELETE有一些疑问

举例来说,如果我有一个更新用户配置文件的API端点,我是否应该接受POSTPUT请求?

如果我正在为我的API构建客户端作为桌面应用程序或iOS应用程序等,那么向我的API发送PUT请求会很容易,但我计划为我的API提供基于Web的应用程序。

因此,在我的基于Web的应用程序上,我将有一个HTML表单来更新用户配置文件,然后这将作为POST发送,因为HTML表单不允许PUT请求。

有更多经验的人可以解释处理我的示例场景的最佳方法吗?

正确的方法是将我的表单作为POST发送到我的PHP脚本,然后我的PHP脚本会使用cURL向我的PHP API发出正确的PUT请求吗?

你绝对也可以从浏览器做PUT请求,但你需要javascript。

一般来说,我想说一个考虑它的好方法,如下:

首先构建一个遵循所有规则的优秀REST api。 只有在您处于这一点时,才考虑使其在其他环境中工作所需的变通方法。 提交HTML表单是一个需要解决方法的有效方法。

但是,由于“POST”完全打开以进行解释,并且几乎没有关联的规则,因此一种选择是在服务器上创建一个处理来自浏览器的所有POST请求的资源(或url)。 (类似/browserpost )。

您总是可以添加一个name="url"的隐藏<input>字段,用于指定实际要更新的资源,以及一个name="method" value="PUT"<input>用于意图。

无论如何,您将需要添加CSRF保护,因此我觉得这将是解决此问题的可靠方法。 1个端点专门“代理”基于html的表单提交,并在内部对正确的REST服务进行适当的映射。

我会使用GET POST PUT DELETE因为它们在HTTP中有描述。 这是宁静的(在我看来)。 由于常规浏览器表单不支持此功能,因此我会通过AJAX发送数据。

如果你真的需要使用浏览器表单,可能是因为没有启用javascript,那么使用带有param之类的?method POST请求听起来像是一个合适的解决方案 - 虽然我不喜欢它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM