2015-07-18 15 views
7

Wydaje mi się, że to implicite, że przy wdrażaniu izomorficznej aplikacji z jedną stroną opracowałeś także prywatne API, które twój klient będzie szukał aktualizacji.W aplikacji izomorficznej pojedynczej strony, co dzieje się z klientami podczas wdrażania nowego kodu serwera?

Moje pytanie brzmi: po wprowadzeniu zmian w kodzie na serwerze pojawią się "nieaktualni" klienci, którzy nadal będą używać swojego starego kodu klienta, a następnie trafią do api z prawdopodobnie niezgodnymi parametrami i założeniami.

widzę dwa możliwe rozwiązania:

  1. Wersja Twój API. Twój kod klienta będzie musiał nacisnąć api z jego aktualnym numerem wersji; Twój kod serwera jest przepełniony logiką wersjonowania.
  2. Zaimplementuj pewien rodzaj gniazd/wiadomości Push, aby poinformować klientów, aby wykonali odświeżenie całej strony, aby uzyskać najnowszy wdrożony kod po każdym wdrożeniu. (Czy te połączenia pozostają nienaruszone po wdrożeniu serwera?)

(Wersjonowanie Api jest koniecznością, jeśli masz klientów mobilnych do obsługi, ale tylko na stronie internetowej, wydaje się dużo niepotrzebnej pracy.)

Ktoś inny napotyka lub rozwiązuje ten problem? Czy są inne opcje, których mi brakuje?

Odpowiedz

1

Proponuję połączenie dwóch technik. Polecam wersjonowanie interfejsu API, a następnie sprawdzanie wersji, które zostanie wykonane przez serwer podczas każdego wywołania interfejsu API. Jeśli wersja nie jest równa najnowszej wersji, wyślesz wiadomość do klienta, która powiadomi ich o konieczności pełnego odświeżenia.

W ten sposób Twój kod nie powinien zostać przepełniony wieloma różnymi wersjami logiki. Możesz po prostu utworzyć funkcję sprawdzania poprawności, która jest wywoływana na początku każdego połączenia i zwraca komunikat, aby zaktualizować, jeśli klient jest nieaktualny.

0

Myślę, że należy umieścić wniosek na plan konserwacji na kilka godzin, które są potrzebne do aktualizacji kodu. Powiadom swojego użytkownika o tym wcześniej. I wybierz czas, w którym mniej aktywna jest użytkownik.

Powiązane problemy