Skava Skava / Wiki

Własne elementy: interfejs API

Interfejs API to formularz, którego wypełnione wartości Skava wysyła jako JSON na wskazany przez Ciebie adres (Twój backend). Dzięki temu możesz bezpiecznie połączyć Skava z własnymi systemami.

i

Interfejsy API zarządzasz w Webapp w sekcji Własne elementy → przełącznik Interfejsy API. Tworzenie i edycja są zarezerwowane dla administratorów firmy; opublikowane interfejsy mogą następnie uruchamiać wszyscy członkowie firmy.

Konfiguracja interfejsu API

Interfejs składa się z pól wejściowych (tworzą one JSON), adresu docelowego oraz uwierzytelniania.

  1. Tworzenie pól: Każde pole otrzymuje klucz JSON. Po prawej stronie widzisz na żywo podgląd JSON, który zostanie wysłany do Twojego backendu dokładnie w tej formie.
  2. Adres (URL): adres https:// Twojego backendu. Dozwolone są wyłącznie adresy HTTPS i publicznie dostępne (zobacz Bezpieczeństwo poniżej).
  3. Metoda: POST (domyślnie), PUT, PATCH lub GET. Przy użyciu GET wartości są dołączane jako parametry zapytania zamiast wysyłania w ciele żądania.
  4. Uwierzytelnianie: Ustaw nazwę nagłówka (np. Authorization) oraz prefiks wartości (np. Bearer ), a następnie zapisz token. Opcjonalnie ustaw datę wygaśnięcia.
  5. Pola odpowiedzi (opcjonalnie): Zdefiniuj ścieżkę, aby określić, które wartości z odpowiedzi backendu mają być wyświetlane: np. order.id lub items[0].sku.
  6. Sprawdź za pomocą Ping i Test Request, a następnie Release.
Skava webapp: zakładka Pola interfejsu API. Na górze automatycznie dołączane wartości kontekstowe (nazwa użytkownika, firma, projekt …), poniżej pola niestandardowe z kluczem JSON, po prawej podgląd formularza i żywy podgląd JSON.
Zakładka Pola: każde pole otrzymuje klucz JSON. Na górze automatycznie dołączane są wartości kontekstowe, takie jak użytkownik, firma i nazwa projektu. Po prawej widzisz formularz i żywy JSON: dokładnie to, co jest wysyłane do Twojego backendu.
Skava webapp: zakładka Endpoint interfejsu API z polami dla adresu URL, metody POST, czasu oczekiwania, nagłówka uwierzytelniającego, prefiksu wartości Bearer oraz polem wejściowym dla zaszyfrowanego tokena.
Zakładka Endpoint: adres docelowy (tylko HTTPS), metoda, czas oczekiwania oraz nagłówek uwierzytelniający wraz z prefiksem wartości. Token jest przechowywany w zaszyfrowanej formie i nigdy nie jest przekazywany klientom.
Skava webapp: Karta odpowiedzi w interfejsie API. Ustawiono pole odpowiedzi z kluczem JSON Success, po prawej stronie podgląd, jak wynik będzie wyglądał w czacie.
Karta Response (opcjonalna): określ za pomocą ścieżki, które wartości z odpowiedzi backendu mają być wyświetlane. Po prawej stronie znajduje się podgląd karty wyniku, która później pojawi się w czacie.

Przechowuj token bezpiecznie

Token jest przechowywany zaszyfrowany i nigdy nie jest zwracany do klientów: aplikacja pokazuje jedynie czy token jest ustawiony oraz kiedy wygasa. Podczas wysyłania aplikacja Skava dodaje go po stronie serwera do skonfigurowanego nagłówka. Jeśli ustawisz datę wygaśnięcia, Skava odrzuci połączenie po jej upływie i poprosi o odnowienie tokena.

Testowanie: ping i żądanie testowe

  • Ping : szybka weryfikacja dostępności. Sprawdza jedynie czy Twój adres odpowiada, nie wysyłając przy tym tokena ani danych formularza. Wyświetla dostępność, status i czas odpowiedzi. Idealny jako pierwszy krok.
  • Testowe żądanie : prawdziwa próba: wysyła przykładowe dane w tym token do Twojego adresu i pokazuje pełną odpowiedź oraz wyodrębnione pola odpowiedzi.

Jako administrator możesz uruchomić oba testy w trybie szkicu, aby zweryfikować integrację przed publikacją.

Skava webapp: zakładka Test interfejsu API z przyciskami Ping i Testowe żądanie, wynikiem Status 200 OK, czasem odpowiedzi oraz pełną odpowiedzią JSON z backendu.
Zakładka Test: Ping i Testowe żądanie obok siebie. Tutaj ze statusem 200, czasem odpowiedzi oraz pełną odpowiedzią backendu w formacie JSON.

Szkic i publikacja

Każdy interfejs rozpoczyna się jako szkic i może być dowolnie edytowany. Gdy wszystko jest gotowe, publikujesz go przyciskiem Publikuj.

!

Opublikowane interfejsy są niezmienne. Jest to celowe: po publikacji nikt nie może w ukryty sposób podmienić adresu docelowego ani tokena. Jeśli chcesz coś zmienić, stwórz nową wersję.

Bezpieczeństwo

i

Aby zapobiec nadużyciom interfejsu, obowiązują rygorystyczne zasady: dozwolone są wyłącznie adresy HTTPS, a adres musi wskazywać na publiczny cel: adresy wewnętrzne (np. localhost, prywatne sieci lub metadane chmury) są odrzucane. Skava sprawdza to przy każdym wywołaniu, łączy się dokładnie z zweryfikowanym adresem, nie podąża za przekierowaniami i ogranicza czas oczekiwania oraz rozmiar odpowiedzi.

Jak zespół korzysta z opublikowanego interfejsu

Gdy interfejs zostanie opublikowany, wszyscy członkowie firmy mogą go uruchomić bezpośrednio z czatu, bez konieczności używania edytora. Proces jest taki sam jak w przypadku szablonów dokumentów: wybierz, wypełnij, wyślij.

  1. W czacie dotknij przycisku Plus na dole i wybierz Element niestandardowy.
  2. Wybierz żądany szablon lub interfejs z listy.
  3. Wypełnij formularz i naciśnij Wyślij.
  4. Wynik pojawia się jako karta w czacie: widoczna dla wszystkich uczestników rozmowy.
Skava webapp: menu z plusem w polu wprowadzania wiadomości z opcjami: Załącz plik, Zdjęcie/Wideo, Utwórz zadanie, Utwórz pozycję rozliczeniową oraz Element niestandardowy.
Krok 1: w menu Plus w czacie wybierz Element niestandardowy.
Skava webapp: okno dialogowe Wybierz element niestandardowy nad czatem, oferujące opublikowane działanie API Zamówienie materiałów; karty z wynikami zostały już wysłane w tle.
Krok 2: wybierz żądany szablon lub interfejs: tutaj działanie API Zamówienie materiałów.
Skava webapp: wypełnialny formularz akcji API Zamówienie materiałów z polami numer artykułu, opis, ilość, jednostka, żądana data dostawy i uwaga, plus informacja o automatycznie dołączonych wartościach.
Krok 3: wypełnij formularz. Informacja na dole pokazuje, które wartości są dołączane automatycznie.
Skava webapp: karta wyniku akcji API Zamówienie materiałów w czacie ze statusem 200, wprowadzonymi wartościami i odpowiedzią backendu (numer zamówienia, status, data dostawy) oraz rozwijalnymi danymi surowymi.
Krok 4: karta wyniku w czacie z wprowadzonymi danymi i odpowiedzią Twojego backendu.

Pozwól AI na stworzenie elementu

Jako administrator firmy nie musisz korzystać z edytora samodzielnie. Powiedz asystentowi Skava w czacie, na przykład „stwórz mi formularz zamówienia dla mojego katalogu z ilością i adresem dostawy". Na tej podstawie tworzy wersję roboczą, którą później można zmieniać pole po polu. Asystent zna Twój przesłany katalog artykułów: w przypadku zamówień sugeruje on wybór produktu zamiast pola tekstowego dla numeru artykułu.

Co może również ustawić: punkt końcowy i metodę oraz grupę docelową („tylko członkowie firmy" lub „również osoby z zewnątrz w tym samym czacie"). W przypadku grupy docelowej najpierw pyta, zamiast od razu ustawiać, ponieważ to decyduje, kto może uruchomić coś z zewnątrz.

Czego nie dotyka w sposób jawny: tokena dostępu. Nigdy o niego nie pyta i nigdy go nie akceptuje, ponieważ wiadomości czatu są przechowywane. Wpisujesz go samodzielnie w edytorze, w przeciwnym razie żaden wywołanie nie zostanie wysłane. Nie może również opublikować: ostatni krok pozostaje w Twoich rękach, więc nic nie staje się widoczne dla klientów bez Twojej weryfikacji.

Kto może to uruchomić

Karta „Punkt końcowy" określa, kto może korzystać z elementu. Domyślnie są to członkowie Twojej firmy. Drugie ustawienie otwiera dostęp dla osób z zewnątrz, ale tylko w czacie, w którym obecny jest również ktoś z Twojej firmy: dokładnie ten przypadek, do którego jest to przeznaczone, czyli klient składający zamówienie u Ciebie. Gdy Twoja firma opuszcza czat, uprawnienia wygasają automatycznie.

Produkty z własnego katalogu

Po załadowaniu katalogu artykułów kreator oferuje blok wybierania produktów. Nie ma opcji do zarządzania: lista to Twój katalog. Osoba składająca zamówienie wyszukuje w niej, widzi obrazek, nazwę i numer artykułu, a Twój backend otrzymuje numer artykułu. Skava odrzuca numer, którego nie ma w katalogu. Obok pola z ilością umieść zwykłe pole liczbowe.

Zdefiniuj kartę samodzielnie

Twój backend decyduje o treści karty. Skava sprawdza tylko kształt, rozmiar i bezpieczeństwo, nigdy znaczenie: nie zna stanów zamówień ani nazw pól. Aby to zrobić, odpowiedz obiektem card:

{"card": {"v": 1, "title": "Order 10001", "state": "pending", "status_text": "Being picked", "fields": [{"label": "Tracking number", "value": "DPD123456789"}]}}

  • v musi być liczbą całkowitą 1. Bez tego odpowiedź nie jest traktowana jako karta i zastosowane zostanie mapowanie odpowiedzi skonfigurowane w elemencie.
  • state to tylko kolor i ikona: ok, pending, warn lub error. Wszystko, co niesie znaczenie, należy umieścić w status_text jako dowolny tekst.
  • fields to lista etykiet i wartości, maksymalnie 20 wpisów. Zbyt długie wartości są skracane, a nie odrzucane, dzięki czemu zamówienie nigdy nie zawiedzie z powodu szczegółu.

Wprowadzone przez użytkownika dane należą do serwera: pozostają nienaruszone niezależnie od tego, co wysyła Twój backend. Stanowią one zapis w czacie tego, co faktycznie zostało przesłane.

Raportowanie statusu później

Gdy element działa, Skava wysyła dwie dodatkowe wartości: callback_url i callback_token. Później zgłoś tam nowy stan, a w czacie, również na telefonie, pojawi się nowa karta, nawet gdy ktoś na nią patrzy. Poprzednia pozostanie, więc będzie czytelne, który stan został zgłoszony. Wyślij ten sam obiekt card jak powyżej, metodą POST z nagłówkiem Authorization: Bearer <callback_token>. Obok karty znajdują się trzy opcjonalne wartości:

  • seq: Twój własny licznik. Raport o mniejszej lub równej wartości jest odrzucany, dzięki czemu dwa raporty nie mogą się wyprzedzić.
  • final: Zamyka interakcję. Token traci ważność, a karta staje się ostateczna.
  • notify: Ustaw na false, aby opublikować kartę cicho, bez licznika nieprzeczytanych i bez powiadomienia. Przeznaczone dla kroków pośrednich, które nie powinny budzić nikogo. Bez tego ustawienia karta jest zwykłą wiadomością.

Interakcja może opublikować maksymalnie 50 kart. Ten sam raport wysłany dwukrotnie nie generuje drugiej karty.

Skava odpowiada kodem 200 i listą hints, jeśli cokolwiek zostało skrócone lub odrzucone, oraz kodem 422, jeśli karta była nie do użycia. Interakcja akceptuje raporty przez 90 dni.

Karty są publikowane przez nadawcę systemowego Skavy, a nie przez osobę, która uruchomiła element, ani przez konto Twojej firmy. W tytule karty podano, który system jest autorem.

Pełny przykład do skopiowania znajduje się w repozytorium w folderze example_order_server/ i działa na adresie api.skava.io.

Powiązane

Czy zamiast tego chcesz stworzyć szablon dokumentu do wypełnienia? Zobacz Custom Elements: Dokumenty.

Często zadawane pytania

Czym jest interfejs API w Skava?

Formularz, którego wypełnione wartości Skava wysyła jako JSON na wskazany przez Ciebie adres (Twój backend): przydatne do łączenia Skava z własnymi systemami.

Kto może tworzyć i uruchamiać interfejsy API?

Tworzenie i edycja są zarezerwowane dla administratorów firmy. Opublikowany interfejs może następnie uruchamiać każdy członek firmy.

Jaka jest różnica między „Ping” a „Test Request”?

Ping sprawdza jedynie, czy adres jest osiągalny: bez tokena i bez danych. Test Request wysyła przykładowe dane wraz z tokenem i pokazuje pełną odpowiedź.

Czy mój token API jest bezpieczny?

Tak. Token jest przechowywany w zaszyfrowanej formie i nigdy nie jest przekazywany do klientów. Aplikacja pokazuje jedynie, czy token został ustawiony i kiedy wygasa.

Które adresy są dozwolone jako punkty końcowe?

Tylko publicznie dostępne adresy https://. Wewnętrzne cele, takie jak localhost, prywatne sieci czy metadane chmury, są odrzucane: chroni to przed nieuprawnionym wykorzystaniem interfejsu.

Dlaczego nie mogę już zmienić opublikowanego interfejsu?

Opublikowane interfejsy są celowo niezmiennicze, aby po publikacji nikt nie mógł podmienić adresu docelowego ani tokena. W przypadku zmian należy utworzyć nową wersję.