java rest post 多个参数_Spring cloud restTemplate 传递复杂参数的方式(多个对象)

使用微服务的时候往往服务之间调用比较麻烦,spring cloud提供了Feign接口调用,RestTemplate调用的方式

这里我探讨下RestTemplate调用的方式:

服务A:接收三个对象参数  这三个参数的是通过数据库查询出来的

服务B:要调用服务A 服务B提供了查询三个参数的方法,后面要使用三个参数

对于服务A,处理的方式有两中

1. 服务B提供一个Feign接口将查询三个参数的方法公开,服务A直接引用Feign来查询参数,服务B只需要将三个查询关键字传递过去即可

服务A action

@PostMapping("/import/{busiCode}/{filePath}")

public Map importExcel(@PathVariable("filePath") String filePath,@PathVariable("busiCode") String busiCode,@RequestBody Map params,

HttpServletRequest request,HttpServletResponse response) {

response.setCharacterEncoding("UTF-8");

UserInfo user = UserUtil.getUser();

return excelService.importExcel(filePath,busiCode,params,user);

}

服务A service

//引入Feign接口

private ExcelFreign excelFreign;

public Map importExcel(String filePath, String busiCode,Map params,UserInfo user ) {

Map result=new HashMap();

excelFreign = SpringTool.getApplicationContext().getBean(ExcelFreign.class);

CmdImportConfigDto configDto = excelFreign.getCmdImportConfigByBusiCode(busiCode);

CmdImportDto importDto=new CmdImportDto();

importDto.setImportConfigId(configDto.getId());

importDto.setExcelPath(filePath);

importDto.setParam(new GsonBuilder().create().toJson(params));

importDto.setLog("");

Long impId=null;

try {

impId= Long.valueOf(excelFreign.saveCmdImportDto(importDto));

} catch (Exception e1) {

e1.printStackTrace();

result.put("error", "保存出现异常");

result.put("message", e1.getMessage());

return result;

}

try{

excelFreign.updateImportStatus(impId, ImportConstant.ImportStatus.SUBMIT, "提交成功");

}catch(Exception e){

e.printStackTrace();

}

ValidateTask validateTask=new ValidateTask();

validateTask.init(impId,filePath, busiCode, params,user);

String message;

try {

message = validateTask.call();

} catch (Exception e) {

e.printStackTrace();

result.put("error", "验证出现异常");

result.put("message", e.getMessage());

return result;

}

if(message!=null){

result.put("error", "验证不通过");

resu

你可能感兴趣的:(java,rest,post,多个参数)