Compare
CDC Backend obsługuje komunikację z CDC Compare i dostarcza requesty do budowania porównań z poziomu frontendu oraz monitorowania jego postępu. Serwis buduje również historię porównań, która jest wykorzystana, do odtwarzania stanu frontendu na podstawie wybranego porównania.
Endpointy
GET
compare/init/{uuid}
Zwraca dane do inicjalizacji wszystkich kroków porównania na podstawie zapisanego compareId
POST
compare/bind/tables
Służy wygenerowania danych dla widoku nadania kolejności tabelom w ramach schematów. W request można podać historyczne compareId, żeby auto uzupełnić wybrany wcześniej order
POST
compare/bind/columns
Służy wygenerowania danych dla widoku wyboru kolumn i kluczów głównych do porównania. W request można podać historyczne compareId, żeby auto uzupełnić wybrany wcześniej opcje
POST
compare
Uruchom porównywanie
GET
compare/config
Opcje konfiguracyjne dla tworzonych porównań
GET
compare/status?page=1&size=10&sort=createDate,asc
Pobierz informacje o porównywaniach. Obsługuje pełny paging
GET
compare/status/{uuid}
Pobierz informacje o jednym porównaniu
GET
compare/status/{uuid}/current
Zwraca aktualny status porównania wraz z czasem gdy przeszło w ten stan
GET
compare/status/{uuid}/stages
Zwraca ścieżkę przejścia między stanami porównania wraz z czasem, kiedy statusy się zmieniały
GET
compare/result/{uuid}/no_sql?page=1&size=10&sort=createDate,asc
Pobierz wyniki porównywania dla każdej z tabel. Obsługuje pełny paging
GET
compare/result/{uuid}/no_sql?ids=1,2,3
Pobierz wyniki porównywania dla wybrancyh z tabel z instrukcjami SQL
GET
compare/result/{uuid}/with_sql?page=1&size=10&sort=createDate,asc
Pobierz wyniki porównywania dla każdej z tabel z instrukcjami SQL. Obsługuje pełny paging
GET
compare/result/{uuid}/no_sql/{tableCompareId}
Pobierz wyniki porównywania dla wybranej tabeli
GET
compare/result/{uuid}/with_sql/{tableCompareId}
Pobierz wyniki porównywania dla wybranej tabeli z instrukcjami SQL
GET
compare/result/{uuid}/sql/{tableCompareId}/{queryType}?page=1&size=100
Pobierz instrukcje SQL konkretnego typu (UPDATE,DELETE,INSERT). Obsługuje paging bez sort
GET
compare/result/{uuid}/files?ids=1,2,3,4
Pobierz zapytania sql w postacie ZIP
POST
compare/apply/{uuid}?ids=1,2,3
Zastosuj na bazie docelowej wyniki porównania dla wybranych tabel (kolejność tabel zgodna z tą podaną przy uruchomieniu)
uuid jest zwracane po poprawnym uruchomieniu porównania.
Główna różnica między tymi endpontami, a tymi udostępnianymi przez serwis CDC Compare jest zapisywanie historycznych porównań i uwzględnianie ich w budowaniu nowych. Przy uruchamianiu porównania (POST compare
) przyjmowane są dane ze wszystkich etapów formularza frontendowego tzn.:
leftBind
irightBind
- tabele i schematy wybrane w kroku 2. (Data) - określane w kodzie jako DataSourcesorderTables
- wybrana przez użytkownika w kroku 3. (Order Tables) kolejność tabel w ramach par schematówtablesBindings
- wprowadzone w kroku 4. (Select Data) modyfikacje w kolumnach, które będą porównywane oraz klucze główne które będą użyte
Na podstawie tych zapisanych danych przy następnych zapytaniach do compare/bind/tables
oraz compare/bind/columns
można podać parametr savedCompareId
oraz wykonać zapytanie do compare/init/
{uuid}
aby wypełnić dane we wszystkich krokach. W takim wypadku serwis spróbuje automatycznie dopasować poprzednie wybory użytkownika do aktualnego stanu baz danych. Trzeba przy tym brać pod uwagę, że:
Dla
compare/init/
{uuid}
dane będą zwracane dla kolejnych kroków formularza tak długo, jak na jakimś kroku nie powstała jakaś różnica między stanem zapisanym, a tym w bazie danych np. jeśli jedna z tabel zapisanych wleftBind
nie istnieje w chwili zapytania w bazie danych to polaorderTables
idetailedTable
będą miały wartości null. Jeśli na etapie generowania danych doorderTables
pojawiły się jakieś nowe tabele zostaną one pominięte, żeby dane doDla
compare/bind/tables
przy tabelach zwracane są informacje, że tabela dostała dodana lub usunięta. Jeśli schemat został usunięty, to jest całkiem pomijany. Wszystkie nowe tabele są dodawane na koniec list, tak żeby zachować wcześniej wybraną kolejnośćDla
compare/bind/columns
zwracane są informacje, czy nastąpiły jakieś zmiany w kolumnach lub ich typach danych. Jeśli się da to do tabel przypisywane są wybrane wcześniej klucze główne oraz ustawiany jest wybór kolumn do porównania, jak i w kluczu. Jeśli są jakieś nowe kolumny to będą one domyślnie odznaczone.
Last updated