Коротко
Как объединить списки, полученные от двух REST API с параметрами `limit` и `offset`, и вернуть объединенный список в результате вызова 3-го REST API также с параметрами `limit` и `offset`?
Подробно
Есть эндпоинты 2 REST API:
GET api-1/events? limit=10 & offset=20
GET api-2/events? limit=10 & offset=20
Которые возвращают упорядоченные по дате списки, например:
api-1:
[
{ "date": "2024-02-11", "text": "magna aliqua" },
{ "date": "2024-02-10", "text": "enim ad minim" },
...
{ "date": "2024-02-01", "text": "quis nostrud" }
]
api-2:
[
{ "date": "2024-02-11", "text": "exercitation ullamco" },
{ "date": "2024-01-11", "text": "laboris nisi" },
...
{ "date": "2023-04-11", "text": "aliquip ex" }
]
Нужно написать эндпоинт для 3-го REST API:
GET api-3/events? limit=10 & offset=20
Который возвращает упорядоченный по дате список - объединиение результатов вызовов "GET api-1/events" и "GET api-2/events".
Проблема имеет простое решение для первой страницы (когда `offset=0`), но для последующих страниц приходится делать много запросов к `api-1` и `api-2`.
Вопросы
1. Есть ли у проблемы общеизвестное название? Я бы погуглил его, чтобы приблизится к правильному решению.
2. Как разработать `api-3`, чтобы он работал достаточно оптимально:
- оставалась возможность отправлять запросы API к `api-1` и `api-2` параллельно
У меня есть доступ и возможность изменить порядок работы `api-1`, `api-2` и `api-3`. Например, я склоняюсь к тому, чтобы заменить параметры "order" и "offset" параметрами "dateFrom" и "dateTo". Это решит проблему слияния, но появятся другие проблемы - уже на стороне клиента API, чего не хотелось бы.