场景:在springboot中调用python提供的接口
1、准备内部类(也可以写在model中)
@Data
class TestVO {
public Set<String> nos;
public Set<Integer> deliveryDetailIds;
}
2、使用 RestTemplate 来进行跨环境RPC调用python接口
public List<DeliveryDetailVO> getData2Python(Set<String> nos, Set<Integer> deliveryDetailIds) {
List<DeliveryDetailVO> deliveryDetailVOList = new ArrayList<>();
RestTemplate restTemplate = new RestTemplate();
// 从yaml 种获取配置的 url
String url = pythonConfigModel.getUrl()+ "wmsDelivery/queryDeliveryDetailsByNos";
if (CollectionUtils.isEmpty(nos)) {
throw new BizException("发货通知单号不能为空");
}
TestVO testVO = new TestVO();
testVO.setNos(nos);
testVO.setDeliveryDetailIds(deliveryDetailIds);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, testVO, String.class);
JSONObject jsonObject = JSONObject.parseObject(responseEntity.getBody());
boolean flag = (boolean) jsonObject.get("success");
if (flag == true) {
return JSON.parseObject(jsonObject.get("obj").toString(), new TypeReference<List<DeliveryDetailVO>>() {
});
}
return deliveryDetailVOList;
}
注意:这里为yaml配置区分生产、灰度、测试等 |
---|
pythonConfigModel.getUrl()+ “wmsDelivery/queryDeliveryDetailsByNos”; |