我正在處理我的第一個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編碼。 –