Kod odpowiedzi HTTP mówi, czy serwer obsłużył żądanie. Nie zawsze mówi jednak, czy wynik operacji jest dokładnie taki, jakiego potrzebuje proces biznesowy.
Co oznacza poprawna odpowiedź API
Status 200 oznacza, że żądanie zostało obsłużone bez błędu na poziomie komunikacji. To ważne, ale przy zmianie stanów, cen, relacji produktów albo innych danych operacyjnych warto sprawdzić jeszcze efekt.
Po ważnym zapisie odczytaj dane ponownie
Prosty wzorzec wygląda tak: pobierz stan przed zmianą, wykonaj zapis, a następnie ponownie odczytaj rekord z systemu i porównaj pola, które miały się zmienić.
before = GET(record)
WRITE(change)
after = GET(record)
COMPARE(expected, after)Nie trzeba porównywać wszystkiego. Wystarczy skupić się na danych ważnych dla dalszego procesu.
Uważaj na pola będące całymi kolekcjami
Niektóre API traktują przesłaną listę jako nową pełną wartość, a nie jako element do dopisania. W takim przypadku zapis jednego elementu może zastąpić pozostałe.
Bezpieczniej jest najpierw pobrać obecną wartość, połączyć ją ze zmianą, zapisać całość i sprawdzić wynik.
Sam fakt istnienia rekordu nie wystarcza
Wariant produktu może istnieć, ale być źle połączony z produktem głównym. Zestaw może istnieć, ale mieć niepełny skład. Przy takich danych trzeba sprawdzać nie tylko obecność rekordu, ale też jego relacje.
Zaplanuj, co ma się stać przy różnicy
Kontrola ma sens wtedy, gdy wykryta rozbieżność prowadzi do konkretnej reakcji. Przy małym imporcie może powstać lista do poprawy. Przy stanach lub cenach lepiej zatrzymać kolejną partię i sprawdzić przyczynę.
Potrzebujesz pomocy przy podobnym problemie?