В качестве доказательства концепции работы с Spring 5 и Webflux у меня есть два микросервиса:
- Пицца-Сервис , с подробной информацией о пицце с ее ингредиентами.
- Order-Service , с информацией о том, что клиенты хотят есть (в данном случае пиццу).
В первом я управляю:
public class PizzaDto {
private Set<IngredientDto> ingredients;
...
Во втором:
public class OrderDto {
private Set<OrderLineDto> orderLines;
...
public class OrderLineDto {
private PizzaDto; // In this case without ingredients
...
В Пицца-Сервис У меня есть следующий метод отдыха:
@GetMapping("/{name}")
public Mono<ResponseEntity<PizzaDto>> findByName(@PathVariable String name)
В Служба заказа У меня есть следующее:
@GetMapping("/{id}")
public Mono<ResponseEntity<OrderDto>> findById(@PathVariable Integer id)
Связь между обоими микросервисами работает нормально при использовании WebClient
, и у меня нет проблем с передачей данных друг другу. Мой вопрос связан со следующим сценарием использования, который мне не удалось правильно разработать:
Что я хотел бы выяснить, так это то, что после получения требуемого OrderDto
(и его OrderLinesDto
с PizzaDto
) этого легко достичь, для каждого PizzaDto
, получаемого от Pizza -Сервис «полная информация» о нем и «заполнить некоторые пробелы» с ним в возвращенном OrderDto
.