Kluczowe punkty projektowania kontraktów danych API JSON
Sześć rzeczy bardzo trudno zmienić po wdrożeniu: koperta odpowiedzi, format błędów, kształt paginacji, reprezentacja identyfikatorów i czasu, semantyka null a brak pola oraz ewolucja wersji.
JSON w realnych systemach: jak definiować kontrakty API, jak zarządzać konfiguracją i danymi testowymi, jak radzić sobie ze zgodnością wersji i jak utrzymywać dane testowe.
Liczba artykułów: 5Sześć rzeczy bardzo trudno zmienić po wdrożeniu: koperta odpowiedzi, format błędów, kształt paginacji, reprezentacja identyfikatorów i czasu, semantyka null a brak pola oraz ewolucja wersji.
Konfiguracja musi być warstwowa i walidowana; dane testowe muszą być deterministyczne, czytelne i nadawać się do diffu. Jeśli te dwa rodzaje plików są zarządzane słabo, koszt debugowania pozostaje wysoki przez długi czas.
Pięćdziesiąt rekordów staje się pięćdziesięcioma jeden, a diff zgłasza pięćdziesiąt jeden zmian. Omawia fałszywe alarmy diffu tekstowego, dopasowywanie tablic po id, normalizację przez jq i stosowalne patche.
merge=union przepuszcza zepsuty JSON i nadal zgłasza sukces. Ten artykuł omawia sterownik trójdrożnego scalania JSON świadomy kluczy oraz trzy nawyki, które redukują konflikty.
Dodanie pola nie jest automatycznie bezpieczne. Omawia granice zgodności, pola wersji, okna wycofywania, migrację z podwójnym zapisem, testy kontraktu i metryki canary.