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