Я ищу шаблон проектирования / библиотеку для объединения нескольких разных конечных точек, чтобы они были видны как одна.
Допустим, у меня есть 3 конечные точки, каждая из которых возвращает объекты одного типа, конечно, объекты разные и имеют уникальный идентификатор. Я хочу создать конечную точку, которая вызывает их все, объединяет результаты, фильтрует и сортирует страницу, а затем возвращает результаты.
Может быть много объектов, поэтому было бы хорошо иметь кеширование, чтобы вызывать эти три конечные точки только тогда, когда что-то изменилось (скажем, я каким-то образом знаю, нужно ли мне обновлять кеш).
Я предполагаю, что есть библиотека, которая может соединять несколько конечных точек в одну, кэшировать результаты и предоставлять фильтр, сортировку и страницу. Что-то вроде, скажем, репозитория Spring: однако данные читаются не из базы данных, а из кэша, который собирает их с конечных точек REST.
Я рассматривал шаблон проектирования Gateway, такой как Spring Gateway или Zuul Proxy, но, похоже, это всего лишь оболочка, без возможности обработки данных.
Конечно, я могу делать такие вещи вручную:
- создать контроллер
- вызов трех конечных точек (при необходимости для обновления)
- заполнить кеш
- чтение данных из кэша, сортировка, фильтрация и возврат их
но если мне нужно сделать это несколько раз, я ищу библиотеку для этого.