0
我想更新我定義的(用戶)資源之一以更新其當前狀態(聯機/脫機)和/或位置。所以我會用這樣的PUT請求:REST API PUT請求更新資源
PUT http://server/v1/users/12345
有效載荷
{
"status": 0
}
到離線狀態,例如設置。
或者它可能是:
有效載荷
{
"latitude": 100,
"longitude": 100
}
後端基於Laravel/PHP和我在我的控制器響應該請求:
public function update(Request $request, $userReference) {
// Get payload from request
$bodyContent = json_decode($request->getContent(), true);
$userReference = $userReference;
// Update the user location
$updateResponderLocationCommand = new UpdateResponderLocationCommand($bodyContent);
$this->commandBus->execute($updateResponderLocationCommand);
$response = [
'userReference' => $userReference
];
return $this->setStatusCode(201)->respond($response);
}
該控制器我使用了一個集成的命令系統來觸發更新任務。
我的問題是,我在那裏掙扎:
- 我怎麼應該執行的命令進行區分。現在,只有LocationUpdate在這個方法中。但我不想爲狀態更新編寫新的更新消息。
- 那麼請求如何正常工作呢?我是否仍然可以使用
PUT http://server/v1/user/100
的方法,並在有效負載中使用關鍵字,並使用選擇開關 - 控制器內的方法區分要執行的任務? - 我是否支持使用PUT,當我只更新單個組件?我讀過我應該使用POST?
1.我正在想這個......你現在證實了......我覺得它覺得某種程度上「不夠」或者不喜歡正確的方式......所以多數民衆贊成真棒。2)感謝您的鏈接3)我很驚訝,我應該使用PUT來創建資源,而不是'POST'。這應該改變,然後在我的方法。 – sesc360