Rest API Design: клиент должен сделать N обращений к REST API "vs" среднего уровня, чтобы объединить данные и иметь меньше вызовов API и большую полезную нагрузку? (HTTP 1.1) - PullRequest
0 голосов
/ 16 января 2019

Что лучше

1) чтобы клиент сделал N вызовов в API отдыха и сохранил каждый вызов как можно более легким?

ИЛИ

2) чтобы иметь большую полезную нагрузку, которая обслуживается клиенту, а полезная нагрузка подготовлена ​​средним уровнем?

Я знаю, что нет единого размераподходит для любого решения, и, как правило, бизнес-багаж играет свою роль.Но давайте на минутку забудем об этом, и представим, что это новостной веб-сайт, достаточно общий для этой дискуссии.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 января 2019

Если мы забудем все остальные соображения и сконцентрируемся на этом конкретном ракурсе, как вы предложили, то я бы сказал, что если ваш пользователь собирался сделать N вызовов для возврата тех же данных в любом случае (скорее чем разбить на страницы и запрашивать следующую страницу только тогда, когда этого требует пользователь), то в большинстве случаев предпочтительнее сделать один вызов, но не во всех случаях (т. е. когда полезные данные очень велики).

Насколько большой очень большой? Среди прочих факторов, это зависит от того, находятся ли ваши потребители в одной сети с внешней сетью.

Факторы Поддержка Большая полезная нагрузка:

  1. Снижает сетевой трафик и задержку (т. Е. Туда и обратно, связанные с вызовами 'N').
  2. Потребителям не нужно беспокоиться о слиянии и обработке данных.
  3. Обычно легче обрабатывать ошибки, так как потребители будут иметь дело с одним ответом, а не с несколькими вызовами, которые могут влиять друг на друга.

Факторы против больших полезных нагрузок:

  1. Если время ответа для большой полезной нагрузки считается медленным, то вы будете заставьте своих потребителей ждать, чтобы увидеть результаты. С 'N' звонки, вы можете начать отображать результаты, пока вы все еще загружаю данные. Это может повлиять на пользовательский опыт.
  2. Если в середине разговора произошел сбой, и у вас нет встроенной отказоустойчивости и непрерывности, вам придется воспроизводить большую полезную нагрузку, что заставляет потребителя ждать дольше. Это может быть важным фактором, если ваша полезная нагрузка очень велика.
  3. Опять же, если ваша полезная нагрузка очень велика, тогда вызовы "N" имеют смысл, поскольку потребители могут одновременно инициировать несколько запросов и быстрее получать данные.

Как я упоминал выше, нужно учитывать множество факторов, и мой ответ, вероятно, слишком ванильный, но, надеюсь, он даст вам представление о том, как к этому можно подойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...