Rest服务方法映射[Java Spring]

时间:2018-02-14 11:03:30

标签: java spring rest optimization controller

这是我第一次尝试从头开始编写服务。我正在使用RestController和Java Spring创建一个服务,该服务根据调用服务时传递的参数生成pdf。使用一个参数调用服务,但可以使用两个不同的变量调用服务(一个是注册表编号,另一个是标识符),并且根据这两个中的哪一个传递,服务生成相同的JSON,但在后台调用不同的服务我的程序(一个调用IDN,一个调用regNum)。

到目前为止,我有这个:

@RequestMapping(value = "/generatePdf/{idn}", method = RequestMethod.GET, produces = "application/pdf")
public String generatePdf(@PathVariable String idn) {
    //logic
}

我的问题是这个。这个问题的最佳解决方案是什么? 我是否使用不同的名称和映射制作单独的方法? 我应该创建一个标志来检查发送哪种类型的od数据?或者,第三点,随意提出建议。

2 个答案:

答案 0 :(得分:1)

@RequestMapping(value = "/generatePdf/{idn}/{rgn}", method = 
RequestMethod.GET, 
produces = "application/pdf")
public String generatePdf(@PathVariable(required = false) String idn, 
@PathVariable(required = false) String rgn) 
{
if(idn.equals(null){
//logic
}else {
//logic
}
}

答案 1 :(得分:1)

我建议你创建单独的方法,而不是添加额外的标志:

  • API将更具可读性和可理解性,例如:GET / pdfByIdn / {idn}和GET / pdfByRN / {rn}
  • 轻松添加其他案例,无需修改现有方法
  • 将不同的服务类用于生成PDF的
  • 的不同方法更有意义