Мне было интересно, как крупные компании делают так, чтобы приложение и ответ сервера оставались синхронизированными, даже если пользователь не обновляет свое приложение?
Допустим, я пользователь и использую приложение
Приложение 1.0
let data_name = data["data_name"]
print("Hello " + data_name + "!")
Сервер 1.0
echo('["data_name": "BOB"]');
Все работает нормально, приложение печатает
Hello BOB!
Но что, если я обновлю, приложение и сервер тоже, и я меняю переменную data_name
на user_name
, НО пользователь не обновляет свое старое приложение?
Приложение 1.0
let data_name = data["data_name"]
print("Hello " + data_name + "!")
Сервер 2.0
echo('["user_name": "BOB"]');
ERROR: data_name is NULL
Как с этим справляются крупные компании?
Если я не обновлю какое-то приложение, они по-прежнему будут работать безупречно и через несколько месяцев.
(Между прочим, я видел, что они могут обновить приложение, даже если пользователь не загружает обновление ..)
Версионные API. Сервер поддерживает несколько версий своего API. Старые версии данных запроса приложения с использованием старого API. В новых версиях используется новый API. Это может быть так же просто, как передача номера версии в качестве аргумента API, и сервер отреагирует соответствующим образом.
Также обратите внимание, что некоторые приложения заставляют вас обновляться. Это значит, что серверу нужно поддерживать только последнюю версию API.