| Termin | Definicja |
|---|---|
| mieszanie wersji API w jednym systemie | Mieszanie wersji API w jednym systemie prowadzi do niespójnego zachowania integracji i utrudnia diagnozowanie błędów. Na czym polega mieszanie wersji APIMieszanie wersji API występuje wtedy, gdy różne części jednego systemu komunikują się z interfejsem programistycznym według odmiennych kontraktów. Przykładem może być aplikacja kliencka korzystająca z wersji v1, moduł pośredniczący oczekujący odpowiedzi v2, a komponent odpowiedzialny za zapis danych wysyłający żądania zgodne jeszcze z innym wariantem interfejsu. Sam fakt istnienia kilku wersji API nie musi być błędem. Problem pojawia się wtedy, gdy wersje nie są jednoznacznie rozdzielone, a przepływ danych między nimi nie ma określonych reguł zgodności. Kontrakt API obejmuje między innymi adres zasobu, metodę HTTP, nazwy i typy pól, sposób kodowania danych, kody odpowiedzi oraz znaczenie błędów. Zmiana nazwy pola, usunięcie właściwości, przejście z liczby na tekst albo zmiana znaczenia wartości może wpłynąć na działanie klienta, nawet jeśli sam adres usługi pozostaje taki sam. Niespójność może dotyczyć także nagłówków HTTP, parametrów zapytania, formatu daty, jednostek liczbowych i sposobu przekazywania identyfikatorów. Jak niespójny kontrakt zmienia przepływ danychW typowym przepływie dane są pobierane przez klienta, przekazywane do warstwy pośredniej, przekształcane, a następnie zapisywane lub prezentowane użytkownikowi. Jeżeli każdy etap interpretuje odpowiedź według innej wersji API, dane mogą zostać utracone albo zmienione bez wyraźnego błędu. Starszy klient może oczekiwać pola Inny przypadek dotyczy zmian w typach danych. W jednej wersji identyfikator może być zwracany jako liczba, a w innej jako tekst, ponieważ system musi obsłużyć identyfikatory zawierające zera początkowe lub znaki. Kod, który wykonuje operacje arytmetyczne na takim polu albo porównuje je bez konwersji, może działać poprawnie tylko dla części odpowiedzi. Podobne skutki wywołuje zmiana wartości opcjonalnej na obowiązkową, zmiana kodu HTTP z oczekiwanego Szczególnie trudne są błędy częściowe. Żądanie może zostać przyjęte przez usługę, lecz klient nie odczyta poprawnie odpowiedzi. Może też dojść do odwrotnej sytuacji: klient prześle dane, które serwer zinterpretuje jako niepełne, a użytkownik zobaczy jedynie ogólny komunikat o nieudanej operacji. W logach pojawiają się wtedy pozornie niezależne symptomy: błędy deserializacji, brakujące wartości, nieoczekiwane przekierowania, powtarzane próby żądania albo rozbieżność między stanem wyświetlanym a stanem zapisanym. Rozpoznawanie wersji podczas analizy błęduDiagnozę należy rozpocząć od ustalenia, jaka wersja API jest używana na każdym odcinku komunikacji. Informacja może znajdować się w ścieżce adresu, na przykład w postaci Warto porównać rzeczywiste żądanie z rzeczywistą odpowiedzią, a nie tylko z deklaracją w dokumentacji. Należy sprawdzić metodę HTTP, pełny adres, nagłówki negocjujące format, parametry, strukturę wysyłanego dokumentu oraz kod i treść odpowiedzi. Przydatne jest prześledzenie identyfikatora żądania w logach klienta i usługi, aby ustalić, w którym miejscu następuje zmiana wersji lub interpretacji danych. Jeżeli system korzysta z formatu JSON, trzeba porównać nie tylko obecność pól, lecz także ich zagnieżdżenie, typ, możliwość wystąpienia wartości Naprawa zwykle polega na przypisaniu konkretnej wersji do każdego klienta i endpointu, usunięciu niejawnych przekierowań oraz wprowadzeniu jawnego mapowania między kontraktami, gdy współistnienie wersji jest konieczne. Dobrą praktyką jest testowanie scenariuszy zgodnych z kontraktem, w tym odpowiedzi sukcesu, błędów walidacji, brakujących pól i nieobsługiwanych wersji. Po zmianie należy sprawdzić cały przepływ: pobranie danych, transformację, zapis, odczyt i prezentację. Samo usunięcie pojedynczego komunikatu z logu nie potwierdza rozwiązania problemu, jeśli dane nadal przechodzą przez różne kontrakty. Wpływ problemu na pracę laptopa i komputera PCMieszanie wersji API może ujawnić się na laptopie lub komputerze stacjonarnym jako niepełne działanie programu, nieaktualne informacje, powtarzające się komunikaty o błędzie albo zawieszanie modułu odpowiedzialnego za synchronizację. Przyczyną nie musi być uszkodzenie podzespołu. Źródłem problemu może być niezgodna aktualizacja aplikacji, pozostała starsza biblioteka, błędny wpis konfiguracyjny lub dwa komponenty korzystające z różnych kontraktów. W ocenie przypadku trzeba odróżnić błąd samego programu od problemu systemowego, na przykład braku miejsca, uszkodzenia plików aplikacji, błędnych uprawnień lub niestabilnego połączenia sieciowego. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, dlatego w ramach diagnostyki można ustalić, czy nieprawidłowe działanie wynika z konfiguracji oprogramowania na urządzeniu, czy z fizycznej usterki komputera. Rzetelna ocena wymaga odtworzenia objawu, sprawdzenia komunikatów i ustawień oraz prześledzenia, jakie dane aplikacja wysyła i odbiera. Dopiero na tej podstawie można dobrać dalsze działania, takie jak uporządkowanie konfiguracji, przywrócenie zgodnej wersji komponentu albo naprawa problemu z systemem. |