Oglądasz dokumentację Apigee Edge.
Wyświetl dokumentację Apigee X.
Przepływy to podstawowe elementy składowe serwerów proxy interfejsu API. Przepływy programowania programowania interfejsu API pozwalają skonfigurować sekwencję, w której zasady i kod są wykonywane przez serwer proxy interfejsu API.
Pojęciowy przegląd przepływów znajdziesz w artykule o kontrolowaniu wydajności serwera proxy za pomocą przepływów.
Ten temat opisuje tworzenie przepływów warunkowych i dodawanie logiki do przepływów na wysokim poziomie. Sposób tworzenia warunków obejmuje więcej szczegółów niż obejmuje ten temat. Szczegółowe informacje znajdziesz w artykułach Zmienne procesu i Warunki ze zmiennymi przepływu.
Dołączanie zasad do przepływów
Usługa Edge ma wiele różnych wstępnie zdefiniowanych zasad, które pozwalają na wprowadzanie zabezpieczeń, zarządzanie ruchem i manipulowanie wiadomościami. Zasady umożliwiają też dodanie własnego kodu niestandardowego, aby całkowicie dostosować przetwarzanie wiadomości.
Na przykład:
- Dodaj zasadę zabezpieczeń OAuth do żądania wstępnego wdrożenia ProxyEndpoint. Ponieważ żądanie wstępne ProxyEndpoint jest pierwszym potokiem w potoku, możesz natychmiast odrzucić żądanie, jeśli narusza ono Twoje zasady zabezpieczeń.
- Dołącz zasadę konwersji JSON na XML do odpowiedzi PostFlow elementu końcowego punktu końcowego, aby przekonwertować odpowiedź z JSON na XML.
- Dołącz zasadę JavaScript do warunkowego przepływu pracy punktu końcowego serwera proxy, by wykonać kod JavaScript na potrzeby przetwarzania żądania
Gdy utworzysz przepływ warunkowy, będzie on dostępny jako załącznik zasad. Po wybraniu przepływu kliknij ikonę + Krok na diagramie żądania lub odpowiedzi, aby dodać do przepływu nową lub istniejącą zasadę.
Dołączając zasadę do wybranego przepływu, konfigurujesz serwer proxy interfejsu API, aby egzekwować zasadę limitu tylko w przypadku żądań wysyłanych do tej kombinacji identyfikatora URI i czasownika. Jeśli na przykład dołączysz zasadę do procesu learn w żądaniu, w widoku kodu edytora proxy zostanie wygenerowany ten plik XML:
<ProxyEndpoint name="default"> ... <Flow name="issue"> <Description/> <Request> <Step> <Name>Quota-2</Name> </Step> </Request> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition> </Flow> ... </ProxyEndpoint>
W tej konfiguracji, jeśli żądanie GET pojawi się na serwerze proxy API z wzorcem identyfikatora URI .../issue/** (/issue/ z dowolnym identyfikatorem URI po ostatnim ukośniku), limit zostanie wywołany przez to wywołanie interfejsu API.
Przepływy warunkowe
Wszystkie zasady dołączone do PreFlow lub PostFlow są zawsze realizowane. Jednak zasady w przepływie warunkowym są wykonywane tylko wtedy, gdy warunek przepływu pracy przyjmuje wartość Prawda.
Podczas przetwarzania żądania i odpowiedzi wykonywany jest tylko 1 przepływ warunkowy na segment – pierwszy, którego warunek przyjmuje wartość prawda. Oznacza to, że można przeprowadzać jeden przepływ warunkowy w ramach:
- Potok żądania ProxyEndpoint
- Potok żądania TargetEndpoint
- Potok odpowiedzi ProxyEndpoint
- Potok odpowiedzi w punkcie końcowym
Film: obejrzyj krótki film, aby dowiedzieć się więcej o procesach warunkowych.
Poniższa definicja ProxyEndpoint pokazuje przepływ warunkowy wykonywany przez ProxyEndpoint przy każdym żądaniu HTTP GET
do serwera proxy interfejsu API:
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>request.verb="GET"</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
Zwróć uwagę, że warunek odwołuje się do request.verb zmiennej przepływu. Zmienna przepływu nazywa się odwołaniami, które zawierają informacje o stanie powiązane z transakcjami interfejsu API przetwarzanymi przez Edge. Edge definiuje wiele zmiennych niestandardowych, do których można się odwołać.
Usługi REST są zbiorami zasobów interfejsu API. Zasób interfejsu API to fragment ścieżki identyfikatora URI, który określa encję, do której deweloperzy mają dostęp po wywołaniu interfejsu API. Jeśli na przykład backend Twojej usługi udostępnia prognozy pogody i prognozy pogody, interfejs API może definiować dwa przepływy warunkowe mapowane na te zasoby API: /reports
i /forecasts
. Jeśli w adresie URL wywołanie interfejsu API zawiera jeden z tych zasobów, warunek sprawdza wartość „prawda” i przeprowadzana jest logika powiązana z przepływem warunkowym.
Deweloperzy aplikacji uzyskują dostęp do Twoich zasobów, wysyłając żądania dotyczące adresu URL w taki sposób:
http://myAPIs.myCo.com/weather/reports
lub
http://myAPIs.myCo.com/weather/forecasts
W interfejsie API serwera proxy możesz zdefiniować przepływ warunkowy odpowiadający określonemu zasobowi:
<ProxyEndpoint name="default"> <PreFlow> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition> <Request/> <Response/> </Flow> <Flow name="Flow-2"> <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition> <Request/> <Response/> </Flow> </Flows> <PostFlow> <Request/> <Response/> </PostFlow> ... </ProxyEndpoint>
W tym przykładzie odwołujesz się do zmiennej przepływu proxy.pathsuffix
, która zawiera sufiks adresu URL użyty do uzyskania dostępu do serwera proxy interfejsu API. Do procesu warunkowego dla każdego zasobu możesz następnie dołączyć różne zasady.
Dodawanie przepływu warunkowego
W tym krótkim przykładzie skonfigurujesz proces, który będzie wykonywany tylko wtedy, gdy żądanie będzie HTTP GET.
Aby dodać procedurę warunkową, kliknij kartę Develop (Tworzenie) w kreatorze interfejsów API serwera proxy.
Kliknij ikonę + w wybranym punkcie końcowym.
Formularz Nowy przepływ warunkowy pozwala nazwać przepływ i skonfigurować warunek. W przykładzie poniżej dodajesz prosty warunek, który ocenia HTTP żądania wiadomości w czasowniku GET
(w przeciwieństwie do PUT
, POST
itp.) w dowolnym identyfikatorze URI po ścieżce podstawowej.
(Informacje o tworzeniu instrukcji warunkowych znajdziesz w artykule Zmienne i warunki przepływu).
Nowy przepływ o nazwie Flow-1 pojawi się w menu Nawigatora.
Przyjrzyj się teraz konfiguracji XML serwera proxy. W menu Nawigator wybierz flow-1.
Zobaczysz poniższą konfigurację.
<PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <Flows> <Flow name="Flow-1"> <Request/> <Response/> <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition> </Flow> </Flows> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow>
Dalsze kroki
Szczegółowe informacje o tworzeniu warunków i używaniu zmiennych znajdziesz w tych tematach: