POST方法中的HTTP请求从一个服务到另一个服务+Spring Boot REST API

HTTP Requst in the POST Method from one service to another service+SpringBoot REST API

我使用了 SpringBoot REST API 微服务。 我有三个微服务,例如玩家、游戏和得分。 在 score 微服务的 POST 方法中,我想向 Player 微服务发送 HTTP 请求以通过昵称获取玩家对象。 我阅读了一些关于 RestTemplate 的内容,但是当我使用它时:

final String uri = "http://localhost:8080/player";
    RestTemplate restTemplate = new RestTemplate();
    Player player = restTemplate.getForObject(uri, Player.class);

我有一个错误,因为我的服务在不同的目录和内部评分服务中,它不知道播放器Class。 我不知道如何从一个 Rest 服务向另一个服务发送 HTTP 请求。 评分服务中的评分控制器:

   @RestController
@RequestMapping("/score")
public class ScoreController {
    @Autowired
    private ScoreRepository repo;
    
    //POST Score
    @PostMapping
    public ResponseEntity<?> createScore(@RequestBody @JsonView(Views.class) @Valid  Score score) {
        final String uri = "http://localhost:8080/player";
        RestTemplate restTemplate = new RestTemplate();
        Player player =restTemplate.getForObject(uri, Player.class);
        
        
        return null;}

}

如果您尝试从 Score 微服务调用 API Player 微服务,您可以在 Score 微服务中创建一个新的 Player class,它应该具有与 Player 相同的实例变量class 在播放器微服务中。

对于微服务间通信,您可以在两个微服务中创建相同 DTO classes 的副本 - 一个用于请求,另一个用于响应。

其他选项是为微服务创建共享库并共享 DTO class 或使用客户端库。