Я пытаюсь позвонить в студенческую службу из школьной службы. Я использую Консул, чтобы обнаружить студенческий сервис. Консульская панель показывает, что обе службы активны. У меня проблема с передачей "schoolName" в качестве параметра пути к лямбда-выражению .map (s -> s.resolve ("getStudentDetailsForSchool / schoolName")). Может кто-нибудь подсказать, как передать параметр пути / запроса в конечную точку REST с помощью лямбда-выражения. Моя конечная точка REST - http://localhost: 9098 / getStudentDetailsForSchool / abcschool , которая сообщает сведения об этом ученике школы.
@Service
public class StudentServiceDelegateConsulAnotherWay {
@Autowired
private RestTemplate template;
@Autowired
private DiscoveryClient discoveryClient;
public String callStudentServiceConsul(String schoolName) {
URI url = discoveryClient.getInstances("student-service").stream().map(si -> si.getUri()).findFirst()
.map(s -> s.resolve("getStudentDetailsForSchool/schoolName")).get();
return template.getForObject(url, String.class);
}
}