• connector
  • low-code

Jak wspieramy wachlarz różnorodnych konektorów

Historia o tym, jak wspieramy wachlarz różnorodnych konektorów z dobrą zarówno jakością doświadczenia użytkownika, jak i doświadczenia dewelopera. Dzięki rozwoju opartego na konfiguracjach stworzyliśmy platformę konektorów o niskim kodzie.

Sijie
Sijie
Developer

Wprowadzenie

Konektory odgrywają kluczową rolę w Logto. Dzięki nim Logto umożliwia użytkownikom końcowym korzystanie z rejestracji bez hasła lub logowania się oraz z możliwości logowania się za pomocą kont społecznościowych. Logto pozwala użytkownikom instalować lub tworzyć własne konektory, a obecnie dostępnych jest już ponad 20 oficjalnych konektorów. Nasze konektory są zaprojektowane tak, aby były bardzo elastyczne, umożliwiając użytkownikom instalowanie lub budowanie własnych. Jednocześnie tworzenie nowego konektora jest łatwe. Aby to osiągnąć, zaprojektowaliśmy i wdrożyliśmy rozwiązanie o nazwie „Dynamiczna Forma”, które jest inspirowane Rozwojem Opartym na Konfiguracjach (CDD).

Tło

Konfiguracja konektora Logto jest zapisana w JSON, która, mimo że jest elastyczna, może być trudna do edycji i walidacji. Na początku nie stanowiło to dużego problemu, ponieważ wtedy większość konfiguracji JSON wyglądała tak:

Ale wraz z obsługą coraz większej liczby dostawców i protokołów sytuacja zaczęła się zmieniać. Na przykład w przypadku „SAML connector” w konfiguracji JSON znajduje się ponad 10 kluczy, a typy wartości są złożone - są tam ciągi znaków, liczby, JSONy, wartości do wyboru oraz wieloliniowe ciągi znaków dla certyfikatów.

Więc uważamy, że nadszedł czas na wprowadzenie dobrze zaprojektowanej formy jako zastąpienia edytora JSON. Konektor Logto jest zaprojektowany do działania jako aplikacja zewnętrzna, więc twarde kodowanie formularzy nie jest realnym rozwiązaniem. W rezultacie istnieje silna potrzeba dynamicznych formularzy, które są łatwe do zarządzania i jednocześnie oferują dobre doświadczenie użytkownika. Formularz dla konektora SAML, o którym wspomnieliśmy powyżej, wygląda tak:

Konfiguracja konektora SAML

Co to jest Rozwój Oparty na Konfiguracjach (CDD)

CDD, czyli Rozwój Oparty na Komponentach, prezentuje alternatywne podejście do tworzenia aplikacji. W tradycyjnej metodzie główni architekci tworzą projekty na podstawie potrzeb biznesowych, aplikacja jest następnie rozwijana i wdrażana, a wszelkie modyfikacje są wykonywane albo przez dodawanie nowych elementów, albo przez trudne refaktoryzacje.

W przeciwieństwie do tego CDD skoncentrowany jest na budowaniu niezależnych komponentów od samego początku, zaczynając od najbardziej podstawowego poziomu. Interfejs, zazwyczaj JSON, jest ustanawiany do montażu interfejsu użytkownika na wyższym poziomie. Ta metoda, polegająca na łączeniu używanych wielokrotnie komponentów i szablonu JSON, pozwala deweloperom na wygodniejsze budowanie aplikacji w bardziej elastyczny i skalowalny sposób.

Istota CDD leży w jego wykorzystaniu modularności do tworzenia luźno powiązanego zestawu komponentów, które są następnie łączone za pomocą standaryzowanego interfejsu.

Co to jest Dynamiczna Forma?

Przyjęcie podejścia Rozwoju Opartego na Konfiguracjach (CDD) pozwala nam tworzyć dynamiczne formularze internetowe. Nie są to zwykłe formularze z statycznymi, niezmiennymi polami; raczej są to dynamiczne jednostki z polami generowanymi na podstawie pliku JSON. Piękno tych dynamicznych formularzy internetowych leży w ich elastyczności – jeśli konieczna jest zmiana w polach formularza, wystarczy zaktualizować konfigurację JSON. Ten poziom adaptacyjności sprawia, że dynamiczne formularze internetowe są idealnym rozwiązaniem dla konektorów Logto, które wymagają różnych konfiguracji formularzy, które są nieznane Logto.

Projektowanie Schematów

Zaprojektowaliśmy schemat jako tablicę elementów formularza, każdy element może mieć nazwę, etykietę, podpowiedź oraz, co najważniejsze, typ. Mamy 6 typów elementów formularza, zdefiniowanych jako enum:

A definicja typu elementu formularza to:

Następnie pełny schemat wygląda następująco:

Ale pojawia się mały problem, typ formularza „select” wymaga listy opcji, więc dodajemy to pole do FormItem:

Tworzenie formularza z React-Hook-Form

Teraz, gdy schemat jest gotowy, możemy zbudować formularz na front-endzie na podstawie schematu. Wykorzystamy React Hook Form do osiągnięcia tego celu.

React-Hook-Form to potężne narzędzie do budowania wydajnych, łatwych w użyciu formularzy w React.

Pierwszą rzeczą jest inicjalizacja formularza, załóżmy, że konfiguracja JSON została pobrana i nazwana formItems, a dane w formularzu to formData:

Następnie, implementujemy element sterowania formularzem zgodnie z typem, oto prosta demonstracja:

Podsumowanie

Wszechstronność Rozwoju Opartego na Konfiguracjach (CDD) jasno się objawia, gdy jest stosowana do tworzenia dynamicznych formularzy, szczególnie w przypadku konektorów Logto. Korzyści są dwojakie:

  1. Dla deweloperów, upraszcza proces tworzenia interaktywnych i przyjaznych dla użytkownika formularzy. Zamiast zajmować się zawiłościami kodowania, deweloperzy muszą tylko zdefiniować plik JSON, aby uzyskać lepiej zaprojektowane, intuicyjne interfejsy użytkownika zaprojektowane przez zespół Logto.
  2. Dla użytkowników, to podejście znacznie upraszcza proces skonfigurowania konektora. Usuwa złożoność z integracji, ułatwiając użytkownikom integrację Logto z funkcjami logowania społecznościowego, a także usługami e-mail lub SMS.

Ostatnio artykuły promujące Low Code są wszechobecne w Internecie. To rozwiązanie zostało opracowane z perspektywy rzeczywistych potrzeb użytkowników i uważamy, że jest doskonałym przykładem Low Code.

Chcesz spróbować? Przejdź do Logto Cloud i wybierz konektor.