- Wydrukować
Przegląd łączników HTTP
Ten przewodnik pomoże Ci zrozumieć pełne możliwości konektorów HTTP.
Jeśli chcesz podłączyć zewnętrzny system, taki jak MES lub ERP do Tulipa, musisz użyć złącza HTTP. Tulip's HTTP Connectors mogą łączyć się z większością typów HTTP API, w tym REST i SOAP.
Szukasz przewodnika na temat budowania łączników HTTP? Weź kurs Uniwersytetu Łączników HTTP!
Zrozumienie funkcji łączników
W ramach konektora HTTP można napisać szereg funkcji konektora, które będą uruchamiać typowe typy żądań HTTP przy użyciu predefiniowanych danych wejściowych. Funkcje konektorów to indywidualne działania, które wykonują połączenia z API. Funkcje konektora Tulip HTTP obsługują następujące metody:
- GET
- HEAD
- POST
- PUT
- PATCH
- DELETE
oraz modyfikacje następujących pól:
- Hostname, Port, oraz Path
- Uwierzytelnianie (brak, Basic Auth, OAuth 2)
- Nagłówki żądania
- Parametry zapytania
- Treść żądania (JSON, Form URL-Encoded, XML lub Plain Text)
:::(Info) (UWAGA) Ten wybór będzie miał wpływ na nagłówek Content-Type. Np. jeśli chcesz wysłać JSON używając opcji Plain Text, musisz ręcznie zakodować Content-Type "application/json" w swoich nagłówkach. :::
Odpowiedzi mogą być następnie przetwarzane i informacje wyodrębnione z:
- Nagłówków odpowiedzi (Response Headers)
- Ciało odpowiedzi (JSON przy użyciu json-query lub XML przy użyciu xpath)
Łączniki HTTP obsługują następujące typy danych w wyjściach:
- Text
- Integer
- Float
- Boolean
- Datetime*
- Obiekty z wszystkimi powyższymi typami danych
- Tablice z wszystkimi powyższymi typami danych
*Parsowanie datetime obsługuje:
- OData timestamps w milisekundach od 1 stycznia 1970 UTC
- liczby interpretowane jako milisekundy od 1 stycznia 1970 r. UTC
- łańcuchy dat ISO 8601
Tworzenie połączenia
Kliknij Add Connector w prawym górnym rogu strony Connectors, następnie nazwij Connector i wybierz HTTP.
Następnie zobaczysz zakładkę {{glossary.Environment}}. Jeśli chcesz skonfigurować wiele środowisk, zobacz ten osobny przewodnik
Następnie, po wybraniu Connectora, wybierz Add Connection Details, aby dodać więcej szczegółów na temat serwera, który chcesz zapytać.
Istnieje 5 opcji.
Zapoznajsię z tym przewodnikiem na temat hostów konektorów.
Host: Dołącz tylko domenę, którą chcesz zapytać. Nie dołączaj http:// lub https:// Np. myaccount.restlet.api.netsuite.com.
Port: To powinno być określone przez usługę, którą pytasz. Żądania HTTP zazwyczaj używają portu 443.
TLS: Wybierz "Tak", jeśli używasz HTTPS, a "Nie", jeśli tylko "HTTP".
Kliknij Test, aby sprawdzić, czy możesz pomyślnie połączyć się z serwerem, a następnie kliknij Zapisz.
Aby zduplikować lub usunąć konektor, wróć na stronę Connectors, a następnie kliknij trzy kropki po prawej stronie konkretnego konektora.
Tworzenie funkcji łącznika
Kliknij przycisk Dodaj nową funkcję na zakładce Funkcje, aby utworzyć nową funkcję.
Pojawi się szereg opcji do edycji funkcji.
Najpierw nadaj nazwę funkcji w lewym górnym rogu strony.
Następnie kliknij przycisk Dodaj wejścia funkcji, aby rozpocząć dodawanie wejść. Przykład:
Jeśli chcesz przetestować swoją funkcję złącza HTTP, dodaj "Wartość testową" dla każdego wejścia.
Następnie dodaj punkt końcowy do końca adresu URL i wybierz typ żądania HTTP.
Wybierz Query Parameters, aby rozpocząć dodawanie par klucz/wartość. Użyj zdefiniowanych przez siebie wejść w polu wartości.
Dodaj $ przed i po nazwie wejścia, na przykład, jeśli nazwa wejścia to "city_name", wpisz$city_name$
.
Obsługa odpowiedzi
Po tym jak jesteś zadowolony ze swoich wejść i wyjść, wybierz Test w prawym górnym rogu, aby stworzyć przykładową odpowiedź.
Zobaczysz odpowiedź JSON lub XML w sekcji Wyniki testu. Teraz możesz zmapować części tej odpowiedzi do Outputs, a następnie użyć ich w aplikacjach.
Ekstraktory JSON używają składni json-query. Aby przetestować składnię, użyj tego narzędzia online.
Ekstraktory XML używają składni XPATH.
Istnieją dwa sposoby, aby to zrobić:
- Kliknij właściwości w ciele odpowiedzi, aby zmapować je do wyjść
- Ręcznie określ ścieżkę za pomocą json-query
Oto jak określić ekstraktory za pomocą wskazywania i klikania:
Jeśli chcesz użyć json-query, dodaj kilka wyjść, abyś mógł zmapować zawartość odpowiedzi do Tulipa.
Następnie musisz określić "ekstraktory" obok każdego wyjścia, aby wskazać dane z ciała odpowiedzi, które chciałbyś przechowywać.
Oto przykład z json-query: powiedzmy, że piszesz żądanie GET, które zwraca Array of Objects. Chcesz zwrócić wartość właściwości name z pierwszego obiektu w tablicy.
Oto, co napisałbyś w polu ścieżki:
0.name
Możesz również przechowywać wartości z sekcji nagłówków i plików cookie w odpowiedzi.
Podobnie jak w sekcji powyżej, musisz określić konkretne wyjście w sekcji Output. Następnie kliknij część przykładowej odpowiedzi lub użyj json-query, aby uzyskać dostęp do odpowiedniej właściwości z JSON w odpowiedzi HTTP.
Oto przykład, w którym wyjście o nazwie "csrf_token" przechowuje wartość o nazwie "x-csrf-token" z właściwości w nagłówku.
Dane wyjściowe są przechowywane jako właściwości obiektu, gdy są one udostępniane aplikacji. Następnie musisz przechowywać obiekt w zmiennej w aplikacji. Więcej szczegółów znajdziesz w tym przewodniku po używaniu wyjść złączki z aplikacjami
Użycie RegEx do modyfikacji danych wyjściowych
Możesz również użyć RegEx do dopracowania wartości tekstowych z odpowiedzi. Aby to zrobić, dodaj jedną z tych funkcji w polu Path, aby przekazać wartość przez wyrażenie regularne:
:regexp()
Aby uchwycić wiele podłańcuchów w ramach wyrażenia regularnego:.
:regexpGroup()
Przykłady:
0.name:regexp(^N) 0.name:regexpGroup(^w + (w+))
Używając grupy RegEx, możesz chcieć uchwycić pojedynczą grupę w ramach większego ciągu. Aby to zrobić, dodaj przecinek na końcu swojego ciągu RegEx i dodaj numer konkretnej grupy wewnątrz ciągu.
parts[0].inputs:regexpGroup(^^),2)
Lub użyj go, aby wybrać konkretny element w tablicy, który pasuje do reguły. Na przykład pierwszy obiekt z wartością e-maila, która zaczyna się od n.
.[email:regexp(^N)]
Polecamy RegExr do przetestowania swojego RegEx. Tulip używa silnika RegEx w języku JavaScript (ECMA).
Obsługa obiektów i tablic w wyjściach
Tulip obsługuje zarówno obiekty jak i tablice w wyjściu JSON. Oto jak używać każdego z nich:
Obiekty
Aby sformatować wyjście JSON jako obiekt, najpierw utwórz Obiekt w sekcji Outputs, a następnie wskaż ekstraktor.
W powyższym przykładzie obiekt nosi nazwę "singleObj". Wyjście JSON jest tablicą obiektów, więc wybiera Obiekt o indeksie 0.
Następnie zacznij dodawać wyjścia, które odpowiadają każdej parze klucz / wartość, którą chciałbyś przechowywać. Możesz dodać pary kluczy / wartości za pomocą przycisku +.
W powyższym przykładzie, w obiekcie singleObj znajdują się dwa pola:
- userID, które odwołuje się do właściwości userID i jest liczbą całkowitą
- id, które odwołuje się do właściwości id i jest liczbą całkowitą
W tym przypadku ekstraktor nie musi zaczynać się od "0.", ponieważ automatycznie odwołuje się do obiektu o indeksie 0.
Oto, jak wygląda wyjście JSON, dla odniesienia:
Tablice obiektów
Aby zwrócić tablicę obiektów, wybierz Lista wartości w sekcji Wyjście i wybierz Obiekty.
Prawdopodobnie będziesz musiał zwrócić całą tablicę na poziomie korzenia w wyjściu JSON.
Aby to zrobić, wprowadź "." dla ekstraktora:
Następnie, podobnie jak w przypadku ekstraktora obiektów powyżej, zacznij dodawać poszczególne właściwości, które chciałbyś wysłać do aplikacji.
To zwróciłoby userId i id dla każdego obiektu w tablicy. Możesz sprawdzić swoją pracę w sekcji Outputs w wynikach testu:
Tablice jednego typu danych
Wyobraźmy sobie, że chcesz uzyskać wartość boolean z każdego obiektu w tablicy wartości zwracanych.
Aby to zrobić, utwórz wyjście dla tablicy booleanów. Następnie wskaż właściwość, która jest używana do przechowywania tej wartości boolean w każdym Obiekcie.
W powyższym przykładzie wyjście nazywa się "zakończone" i zawiera wartość z każdej "zakończonej" właściwości w tablicy, zgodnie ze wskazaniem ekstraktora.
Oto jak wyglądałyby dane wyjściowe:
Dotychczasowe integracje
Tulip może integrować się z różnymi systemami oprogramowania. Oto kilka przykładów systemów, które zostały zintegrowane z Tulipem w przeszłości:
Dalsza lektura
- Jak utworzyć i skonfigurować funkcję HTTP Connector?
- Jak sformatować dane wyjściowe połączenia HTTP
- Używanie Connektorów HTTP w aplikacjach
Czy znalazłeś to, czego szukałeś?
Możesz również udać się na stronę community.tulip.co, aby zadać swoje pytanie lub sprawdzić, czy inni spotkali się z podobnym pytaniem!