Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 平静的流动?_Php_Rest - Fatal编程技术网

Php 平静的流动?

Php 平静的流动?,php,rest,Php,Rest,所以 我已经读了一点,它背后的想法听起来不错,但问题是,它能很容易地集成到网页的标准流程中吗 例如,一个用户创建了某种项目、一篇博客文章或你拥有的东西,现在他想删除它,所以他单击页面上的“删除”链接。现在怎么办?我们如何发出删除请求,例如,http://mysite.com/posts/5?我们如何处理这个请求?我没有使用cURL或任何东西的经验,但从外观上看,我必须cURL\u init('http://mysite.com/posts/5)然后施点魔法。但我会把剧本放在哪里呢?这将不得不在另

所以

我已经读了一点,它背后的想法听起来不错,但问题是,它能很容易地集成到网页的标准流程中吗

例如,一个用户创建了某种项目、一篇博客文章或你拥有的东西,现在他想删除它,所以他单击页面上的“删除”链接。现在怎么办?我们如何发出删除请求,例如,
http://mysite.com/posts/5
?我们如何处理这个请求?我没有使用cURL或任何东西的经验,但从外观上看,我必须
cURL\u init('http://mysite.com/posts/5)
然后施点魔法。但我会把剧本放在哪里呢?这将不得不在另一页上,这将打破休息的整个想法。然后我会
GET
ing另一个页面,这会
DELETE
我原来想要的页面

这就是人们很少使用REST的原因,还是有一种很好的方法可以做到这一点



看来我需要澄清一下。人们建议我在URL中加入“删除”和“发布”等词。我相信REST规定我们对每个资源都有一个唯一的URL,但对该资源上的每个操作都没有。我假设这也意味着每个资源只有一个URL。i、 e.我希望能够从一个URL(通过发送DELETE、PUT、post或GET)中删除或查看特定帖子的内容,而不是使用其他参数的不同URL。根据您使用的框架,有一些模型可以确定如何处理每个资源的操作

基本上,使用另一个参数,您希望向资源发送要执行的操作。例如,该参数可以通过AJAX/JS发送

如果您想在不使用javascript/ajax的情况下执行(如果禁用了),那么表单POST方法也可以工作,向资源发送额外的操作参数

当然,在这两种情况下,你都必须考虑安全性,并确保他们不发送资源他们不应该采取的行动。确保在后端执行检查,并发送适当的响应或错误消息

客户端脚本,无论是通过JS/Ajax还是form POST或其他方法,都需要额外的安全预防措施


根据海报上的说明进行编辑。

根据您使用的框架,有一些模型可以确定如何处理每个资源的操作

基本上,使用另一个参数,您希望向资源发送要执行的操作。例如,该参数可以通过AJAX/JS发送

如果您想在不使用javascript/ajax的情况下执行(如果禁用了),那么表单POST方法也可以工作,向资源发送额外的操作参数

当然,在这两种情况下,你都必须考虑安全性,并确保他们不发送资源他们不应该采取的行动。确保在后端执行检查,并发送适当的响应或错误消息

客户端脚本,无论是通过JS/Ajax还是form POST或其他方法,都需要额外的安全预防措施


根据海报上的说明进行编辑。

一种方法是使用DELETE方法进行AJAX调用。

一种方法是使用DELETE方法进行AJAX调用。

我认为REST很少使用。你现在正在使用它,在StackOverflow上。就您的具体示例而言,您可以在支持XMLHttpRequest的浏览器中通过XMLHttpRequest发送删除请求。当JS关闭时,或者对于不兼容的浏览器,您可以执行以下操作:

职位

这并不理想,但仍然比许多网站更为宁静


编辑:改为POST

我认为REST很少使用。你现在正在使用它,在StackOverflow上。就您的具体示例而言,您可以在支持XMLHttpRequest的浏览器中通过XMLHttpRequest发送删除请求。当JS关闭时,或者对于不兼容的浏览器,您可以执行以下操作:

职位

这并不理想,但仍然比许多网站更为宁静


编辑:改为POST

Facebook的REST服务器是一个伪服务器,你可以像他们一样,请求POST方法:POST、GET等。该操作和该请求所需的其他值

为什么我说facebook是一个伪REST服务器休息的原则之一是

  • 使用超媒体链接中使用的通用语法,每个资源都是唯一可寻址的
在facebook中,您只有/server.php,在那里您可以发出请求,即使是(POST、GET、PUT、DELETE…)

另一种方法是使用mod_重写并解析客户端请求的url


编辑:刚刚发现,看起来很有趣。玩得开心

Facebook的REST服务器是一个伪服务器,你可以像他们一样,请求post方法:post、GET等。请求所需的操作和其他值

为什么我说facebook是一个伪REST服务器休息的原则之一是

  • 使用超媒体链接中使用的通用语法,每个资源都是唯一可寻址的
在facebook中,您只有/server.php,在那里您可以发出请求,即使是(POST、GET、PUT、DELETE…)

另一种方法是使用mod_重写并解析客户端请求的url


编辑:刚刚发现,看起来很有趣。玩得开心

不要想得太多。您将无法使用直接的HTML表单和浏览器实现这一点。Ajax可以做到这一点

我希望能够删除以查看 某篇文章的内容 一个URL(通过发送删除、, PUT、POST或GET),而不是不同的URL 带有附加参数

删除以查看?我不确定我是否理解它,但您的删除应该通过标题完成,而不是通过URL。delete方法不应返回视图。REST是一项服务,并非所有请求都是为了视觉消费。

不要
POST http://mysite.com/Trashcan?resourceUrl=/Customer/75
POST http://mysite.com/Printer/75/PrintQueue?url=http://mysite.com/Document/xyz
POST http://mysite.com/CurrentLogins?user=bob
POST http://mysite.com/QueryProcessor?query=FindMyInformation
POST http://mysite.com/SearchEngine?searchTerms=cat,blue,furry
POST http://mysite.com/OrderProcessor?cart=http://mysite.com/user/2323/cart