A
api-versioning
Zarządzaj zmianami API z automatyczną transformacją danych między wersjami
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill do tworzenia i utrzymania zmian w wersjach API. Automatycznie transformuje dane między wersjami — nowe żądania konwertuje do najnowszego formatu, a odpowiedzi wysyła w formacie oczekiwanym przez klienta. Obsługuje zmiany łamiące kompatybilność wstecz poprzez pojedyncze kroki mapowania między kolejnymi wersjami. Idealny do zarządzania ewolucją API bez przerywania usługi dla starszych klientów.
Jak używać
- Zdefiniuj schemat najnowszej wersji API w pliku
shared/api/{zasób}/apiCustomer.tsużywając Zod lub podobnej biblioteki walidacji. Określ wszystkie pola i ich typy dla bieżącej wersji. - Utwórz plik starego schematu w katalogu
shared/api/{zasób}/previousVersions/(np.apiCustomerV3.ts), opisując strukturę danych z poprzedniej wersji, którą chcesz obsługiwać. - Stwórz plik transformacji odpowiedzi w
shared/api/{zasób}/changes/V{X}_{Y}_{Nazwa}.ts. FunkcjatransformResponse()powinna konwertować dane z nowego formatu na stary — ta transformacja idzie wstecz, ponieważ klient na starszej wersji oczekuje starego formatu. - Jeśli obsługujesz żądania od starszych klientów, utwórz plik transformacji żądania w
shared/api/{zasób}/requestChanges/V{X}_{Y}_{Nazwa}.ts. FunkcjatransformRequest()konwertuje dane ze starego formatu na nowy — ta transformacja idzie do przodu, bo handler API oczekuje najnowszego formatu. - Zarejestruj wszystkie pliki zmian w
shared/api/versionUtils/versionChangeRegistry.ts, aby skill mógł automatycznie stosować transformacje w prawidłowej kolejności. - Testuj przepływ: wyślij żądanie w starym formacie, sprawdź czy transformacja do nowego działa, a następnie sprawdź czy odpowiedź w nowym formacie jest poprawnie transformowana z powrotem do starego formatu dla klienta.