我正在处理我的第一个Web应用程序,并有这个基本的疑问。使用REST执行投票
我有一组帖子,我想让用户对它们进行投票。我正在使用PHP,因此我有一个包含处理HTTP请求的代码的article.php
脚本。
目前我实现了使用通过POST HTTP请求发送的数据的文章创建(使用html表单)。返回的文章ID是我从数据库存储文章中获得的文章。
同样,我处理GET请求并返回基于作为参数发送的ID的文章。如果没有定义参数,我会返回所有文章的列表。
目前我没有做过任何URL重写因此请求的格式为article.php?id=xxx
现在我想要实现的选票,而这正是我现在面临的一个问题。根据REST的说法,我应该在特定的资源上使用POST(因为投票不是幂等的),所以我会发送一个POST请求到/article/1234
并附带一个"+1"
正文投票。
问题是,我如何将上述映射到我的用例?假设进行了网址重写,那会转化为什么?重写为article.php?id=1234
将不起作用,因为POST不会在URI(AFAIK)中使用参数。
而且,我将如何区分这一行为与其他行为?我是否还应该添加一些“动作”参数,如article.php?id=1234&action=vote
?
不重写保留POST正文吗? –
它的确如此,但是如何将URL中的数据(本例中为文章ID)传递到POST正文中? – Dan
您只需从'_ _GET ['id']''和'file_get_contents('php:// input')'获得'id',因为它不是URL编码。 –