我想使用Spring定义REST API。我有以下2个@Controller方法:

@RequestMapping(value = "/{machineId}/workspaces/{workspaceId}", method = RequestMethod.DELETE)
public void removeWorkspace(@PathVariable String machineId, @PathVariable String workspaceId {...}

@RequestMapping(value = "/{machineId}", method = RequestMethod.DELETE)
public void removeVM(@PathVariable String machineId) {...}


问题是,此定义导致路径冲突:如果我尝试调用

curl -X DELETE http://localhost/machine-1/workspaces/workspace-1


我希望应该调用“ removeWorkspace”,但是问题是,要调用“ removeVM”。有人知道如何避免这种冲突吗? {machineId}前缀可能导致此冲突。当然,我想保持这些路径不变。

谢谢

最佳答案

这是一个错误,同时已在4.1-RC2版本中修复,请参阅此JIRA SPR-10576以获得更多详细信息。

因此,似乎要在当前版本中进行修复,唯一的方法是更改​​URL路径或手动应用补丁。

09-16 06:30