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

MethodEndpoint

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 i rightBind - tabele i schematy wybrane w kroku 2. (Data) - określane w kodzie jako DataSources

  • orderTables - wybrana przez użytkownika w kroku 3. (Order Tables) kolejność tabel w ramach par schematów

  • tablesBindings - 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 w leftBind nie istnieje w chwili zapytania w bazie danych to pola orderTables i detailedTable będą miały wartości null. Jeśli na etapie generowania danych do orderTables pojawiły się jakieś nowe tabele zostaną one pominięte, żeby dane do

  • Dla 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