Много маленьких запросов к REST API или один большой?

Есть веб-приложение, разработанное с использованием компонентов (VUE..JS, React, Angular). Некоторые компоненты этого приложения получают данные по REST API при инициализации или при взаимодействии с пользователем. Такой подход вызывает много вызовов API на страницу (иногда более 10).
Есть ли проблемы с таким подходом ?
Некоторые предлагают объединить вызовы API в более крупные сервисы на стороне клиента, которые действуют как одиночные. Таким образом, 10 вызовов API могут быть уменьшены до 1, даже если страница может использовать только часть этих данных.
Какой вариант более правильный, множество мелких запросов или же 1 большой ?
  • Вопрос задан
  • 3674 просмотра
Пригласить эксперта
Ответы на вопрос 5
rockon404
@rockon404
Frontend Developer
Если у вас сейчас что-то вроде этого:
GET '/posts/slug/'

{
  post: { /* ... */ }
}

GET '/posts/slug/comments/'

{
  comments: { /* ... */ }
}

GET '/posts/slug/comments/users/'

{
  users: { /* ... */ }
}

GET '/posts/slug/author/'

{
  author: { /* ... */ }
}

GET '/posts/slug/meta/'

{
  meta: { /* ... */ }
}


то логично все связанные данные объединить в один запрос:
GET '/posts/slug/'

{
  post: { /* ... */ },
  linked: {
    users: { /* ... */ },
    comments: { /* ... */ },
    meta: { /* ... */ },
  },
}
Ответ написан
Комментировать
notiv-nt
@notiv-nt
Как ваше ничего? Да, моё тоже
graphql это решает как бы,
Rest не единственная возможность общения клиент-сервер
Ответ написан
@asdz
Я думаю, что оба варианта имеют право на существование, они не плохие и не хорошие. Все зависит от задачи, от требований, от того как дальше вы будете развивать систему и т.д. Просто вы должны знать, что чем больше запросов - больше сетевых издержек, но зато вы сможете запрашивать с клиента только то, что вам нужно, вы можете переиспользовать существующее API в разных фичах приложения. В случае комплексной модели - фронт работает быстрее, нет необходимости "склеивать данные", как при этом выполняется более сложный запрос на бэке - это надо смотреть. То есть у каждого варианта есть свои плюсы и минусы, и какой способ выбрать зависит от конкретной вашей задачи.
Ответ написан
Комментировать
@AlexisKmetik
Смотреть нужно, вам на фронте какая разница? Хоть 100 запросов, если сервер не против. Помните, что делать можете, как решите. Если есть проблемы с производительностью? Нет? Забейте.
Есть важные моменты, типа кэша, количества обращений и прочего. Как производите выборку на стороне сервера, делали оптимизацию запросов? Какой кэш используете? И тд
Ответ написан
Комментировать
IgorPI
@IgorPI
Представьте, что один клиент, условно выполняет 100 запросов на сервер

100 * 1000 клиентов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы