Должен ли я проверить ответ API на клиенте? - PullRequest
0 голосов
/ 15 января 2019

Допустим, у меня есть приложение, которое использует RESTFUL API. Например: я отправляю запросы в конечную точку: "/ products" и получаю ответ в формате JSON. Затем я использую эти данные в своем приложении SPA.

Через некоторое время форма ответа была изменена. Мне не сообщили об этом факте. В результате мое приложение SPA упало. После изменения некоторые свойства, которые я использовал в своем приложении, отсутствовали в ответе API. Я могу предотвратить такую ​​ситуацию, когда я проверю каждый ответ в своем приложении SPA и добавлю значение заполнителя, если оно отсутствует в ответе. Но это может вызвать некоторые проблемы с производительностью.

В любом случае, рекомендуется ли проверять ответ API на стороне клиента?

Ответы [ 2 ]

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

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

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

Если вы управляете сервером и клиентом, стратегия, которая сработала для меня, была:

  1. Не делайте срочных изменений. Сначала обновите сервер до новой версии, а затем прекратите поддержку предыдущей версии.
  2. Клиенты могут иногда проверять, какие версии поддерживает сервер. Если они обнаружат, что сервер отказался от поддержки версии, которую использует клиент, обновите клиент. (может просто освежиться?)

Но это довольно широко. Не уверен точно, насколько это вам поможет, так как это довольно зависимо от ситуации.

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

Что касается вашего описания и моего опыта работы с Restful API, в нем нет лучшего опыта, но в некоторых случаях API поддерживают несколько настраиваемых типов контента и принимают заголовки, которые включают версию для обработки обратной совместимости с другой версией. объекты передачи данных.

Если у вас нет доступа к вызываемому API, лучше использовать шаблон нулевого объекта в приложении на стороне клиента для пропущенных значений во избежание сбоев.

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