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 或使用客户端库。
我使用了 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 或使用客户端库。