弹簧控制器有两个方法由参数

时间:2017-10-13 11:38:42

标签: java spring

我正在尝试编写REST接口来管理应用程序中的一个资源。按照最佳实践,我只想使用名词作为资源名称。

我需要能力以几种不同的方式之一更新资源(PUT操作)。我想我的用户会打电话给:

  • /资源/ {名称}操作= DO&安培;时间= 1&安培;单位= HOUR
  • /资源/ {名称}操作= REDO&安培;时间= 1&安培;单位= HOUR
  • /资源/ {名称}?操作= UNDO

(我可能会有超过3次操作,但这足以显示正在进行的操作)。操作具有不同参数的重要事项之一。逻辑上timeUnitUNDO操作没有意义。

在我的Java后端,我想用两种不同的方法来实现它,每种方法都有自己的@RequestMapping注释。微分器将是Operation参数的值。我找不到任何告诉我如何操作的文档

替代方法是在后端使用单一方法,但这真的很难看,因为我必须弄清楚哪些参数组合是有效的,如果它们不匹配就会抛出我自己的404错误!

1 个答案:

答案 0 :(得分:1)

如果您绝对需要2个控制器,那么请执行

之类的操作
/resource/do/{name}/{time}/{unit}

/resource/undo/{name}