我正在开发我的第一个 Web 应用程序并且有这个基本的疑问。
我有一组帖子,我想让用户对其进行投票。我正在使用 PHP,所以我有一个article.php
脚本,其中包含处理 HTTP 请求的代码。
目前,我实现了使用通过 POST HTTP 请求(使用 html 表单)发送的数据的文章创建。返回的文章 id 是我从存储文章的数据库中获得的。
同样,我处理 GET 请求并根据作为参数发送的 id 返回一篇文章。如果没有定义参数,我会返回所有文章的列表。
目前我还没有进行任何 url 重写,所以请求的形式是article.php?id=xxx
现在我想实施投票,这就是我面临的问题。根据 REST,我应该在特定资源上使用 POST(鉴于投票不是幂等的),因此我会向/article/1234
正文发送一个 POST 请求以"+1"
获得正面投票。
问题是,如何将上述内容映射到我的用例?假设进行了 url 重写,那将转化为什么?重写article.php?id=1234
将不起作用,因为 POST 不接受 URI (AFAIK) 中的参数。
而且,我如何将这个动作与其他动作区分开来?我还应该添加一些“动作”参数article.php?id=1234&action=vote
吗?