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
Method | Endpoint | |
---|---|---|
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