从另一个端点调用REST端点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从另一个端点调用REST端点相关的知识,希望对你有一定的参考价值。
我在下面提供了一个REST端点,
@PutMapping("/calculateReward")
public ResponseEntity<String> calculateReward(@RequestParam("userId") Long userId) {
Optional<User> optional = userService.findById(userId);
if (!optional.isPresent()) {
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
}
User user = optional.get();
double reward = user.getCurrentSteps() * Parameters.REWARD_PER_STEPS_EUR;
RewardList list = new RewardList();
list.setUser(user);
list.setReward(reward);
user.setCurrentSteps(0);
user.setRewardLists(list);
userService.save(user);
rewardListService.save(list);
JSONObject json = new JSONObject();
double convertionRateToEuro = currencyMap.get(user.getCurrencyName());
double rewardConverted = reward * convertionRateToEuro;
json.put("name", user.getName());
json.put("currency", user.getCurrencyName());
json.put("reward", rewardConverted);
return ResponseEntity.status(HttpStatus.CREATED).body(json.toString());
}
ATM我工作到另一个终点,我需要从上面提供的终点获得奖励值。
@PostMapping("/paypal/make/payment")
public ResponseEntity<String> paymentUsingPaypal(@RequestParam("userId") Long userId) {
Optional<User> optional = userService.findById(userId);
if (!optional.isPresent()) {
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
}
User user = optional.get();
// How do I get the "reward" in double here?
}
如何在第二种方法结束时从calculateReward
方法获得双倍的“奖励”?
答案
如果它是相同的应用程序,为什么不只是调用:
nameOfController.calculateReward(userId);
如果您无法调用该方法,则必须使用feign编写客户端。
以上是关于从另一个端点调用REST端点的主要内容,如果未能解决你的问题,请参考以下文章
从另一个 API 端点动态触发现有 Flux - Spring Webflux