Это невозможно без изменения API или реализации собственного. Я проделал аналогичную работу, добавив graphql
API к своему приложению, которое выполняет запросы к серверу. Graphql был разработан для этой конкретной цели, запрашивая несколько конечных точек в одном сетевом запросе. В моей предложенной реализации это не устраняет необходимость в нескольких запросах, но перемещает эти несколько запросов на сервер, чтобы они были прозрачны для внешнего интерфейса.
Предположим, у вашего api фильма есть 2 конечные точки:
GET /movies/ // list all the movies names, year released, and rotten tomatoes score
GET /movie/details?{movie} // get the details about one movie in particular
Вы можете получить эти данные, используя один сетевой запрос от внешнего интерфейса, используя запрос graphql, подобный этому
query {
movie {
name
score
released
details {
starring
director
producer
quotes
trivia
}
}
}
Точно, как реализовать graphql на вашем конкретном бэкэнде, выходит за рамки этого обсуждения, но, по сути, вам нужен распознаватель, который будет запрашивать две конечные точки и объединять их вместе в одном ответе. Я хочу быть настолько ясным, насколько это возможно, что у вас все еще есть 2 сетевых запроса, происходящих в этой модели (3 фактически считая одного, сделанного клиентом), но только один запрос зависит от сетевого подключения ваших пользователей. Другие 2 происходят на уровне сервера. Это делает graphql идеальным для ситуаций с ограниченной пропускной способностью и ситуаций, когда ваше приложение зависит от многих API / конечных точек
Если вам интересно, я предлагаю вам проверить их веб-сайт