Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Przepływy to podstawowe elementy składowe serwerów proxy interfejsów API. Przepływy umożliwiają zaprogramowanie zachowania interfejsu API przez konfigurowanie kolejności wykonywania zasad i kodu przez interfejs API. serwera proxy.
Ogólny opis przepływów znajdziesz w artykule Kontrolowanie działania serwera proxy za pomocą .
W tym artykule opisujemy, jak tworzyć przepływy warunkowe i dodawać logikę (zasady) do przepływów w bardzo ważne. Sztuka tworzenia warunków wymaga więcej szczegółów niż to, co omówiliśmy w tym temat. Szczegółowe informacje znajdziesz w artykule Omówienie procesu zmienne i warunki ze zmiennymi przepływu.
Dołączanie zasad do przepływów
Edge zawiera wiele różnych typów wstępnie zdefiniowanych zasad dotyczących wdrażania zabezpieczeń, zarządzania i manipulowanie komunikatami. Dodatkowo zasady pozwalają na dodawanie własnego kodu niestandardowego do dostosować sposób przetwarzania wiadomości.
Na przykład:
- Dołącz zasadę zabezpieczeń protokołu OAuth do żądanie PreFlow elementu ProxyEndpoint. Ponieważ Żądanie PreFlow żądania ProxyEndpoint to pierwszy przepływ w potoku, odrzucić żądanie, jeśli narusza ono Twoje zasady bezpieczeństwa;
- Dołącz zasadę konwersji z formatu JSON na XML do odpowiedź PostFlow elementu TargetEndpoint, aby przekonwertować z JSON do XML.
- Dołącz zasadę JavaScript do warunkowego Przepływ punktu ProxyEndpoint do wykonania kodu JavaScript do przetworzenia prośba
Po utworzeniu przepływu warunkowego jest on dostępny dla przyłącza zasad. Płynność kliknij ikonę + Krok na diagramie żądania lub odpowiedzi, aby dodać nową lub istniejącą zasadę procesu.
Dołączając zasadę do wybranego przepływu, konfigurujesz serwer proxy interfejsu API tak, aby wymuszał Zasada limitów tylko dla żądań wysyłanych do danej kombinacji identyfikatora URI przepływu i czasownika. Jeśli na przykład dołączyć zasady do procesu dowiedz się w żądaniu, poniższy kod XML jest wygenerowane w widoku kodu w edytorze proxy:
<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 przychodzi do serwera proxy API z identyfikatorem URI wzorzec .../issue/** (/issue/ z dowolnym elementem w identyfikatorze URI po ostatnim przekazaniu dalej ukośnik), dla danego wywołania interfejsu API wymuszany jest limit.
Informacje o przepływach warunkowych
Wszystkie zasady powiązane z PreFlow lub PostFlow są zawsze wykonywane. Jednak zasady w przepływie warunkowym są wykonywane tylko wtedy, gdy warunek przepływu przyjmuje wartość prawda.
Podczas przetwarzania żądania i odpowiedzi wykonywany jest tylko jeden przepływ warunkowy na segment – pierwszy przepływ, którego warunek przyjmuje wartość prawda. Oznacza to, że możesz mieć proces warunkowy jest realizowany w ramach każdego z tych elementów:
- Potok żądań ProxyEndpoint
- Potok żądania docelowego punktu końcowego
- Potok odpowiedzi ProxyEndpoint
- Potok odpowiedzi TargetEndpoint
Film: obejrzyj krótki film, aby dowiedzieć się więcej o przepływach warunkowych.
Na przykład poniższa definicja punktu końcowego serwera proxy pokazuje wykonywany warunkowy przepływ
przez element ProxyEndpoint w dowolnym żądaniu HTTP GET
wysyłanym 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 przepływu . Zmienna przepływu to nazwane odwołania do przechowywania informacji o stanie z transakcją interfejsu API przetworzoną przez Edge. Edge definiuje wiele zmiennych stanu, odwołania.
Usługi REST to zbiory zasobów interfejsu API. Zasób interfejsu API jest fragmentem ścieżki identyfikatora URI
identyfikującego element, do którego deweloperzy mogą uzyskać dostęp przez wywołanie interfejsu API. Jeśli na przykład plik
backend usługi dostarcza raporty pogodowe i prognozy pogody, interfejs API może zdefiniować dwa
przepływy warunkowe mapowane na te interfejsy API.
zasoby: /reports
i /forecasts
. Przy wywołaniu interfejsu API
zawiera jeden z tych zasobów w adresie URL, warunek przyjmuje wartość prawda, a operator
połączony z przepływem warunkowym jest wykonywany.
Deweloperzy aplikacji uzyskują dostęp do Twoich zasobów, wysyłając żądania do adresu URL w postaci:
http://myAPIs.myCo.com/weather/reports
lub
http://myAPIs.myCo.com/weather/forecasts
Na serwerze proxy API można zdefiniować przepływ warunkowy, który odpowiada konkretnemu zasób:
<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óry zawiera fragment adresu URL używany do uzyskiwania dostępu do serwera proxy interfejsu API. Następnie możesz załączyć plik
różne zasady do przepływu warunkowego dla każdego zasobu.
Dodawanie przepływu warunkowego
W tym krótkim przykładzie skonfigurujesz przepływ, który jest wykonywany tylko wtedy, gdy komunikat żądania jest HTTP GET.
Aby dodać przepływ warunkowy, w kreatorze serwerów proxy interfejsów API kliknij kartę Develop.
Kliknij ikonę + w wybranym punkcie końcowym.
Formularz Nowy przepływ warunkowy pozwala nazwać przepływ i skonfigurować warunek. W
z poniższego przykładu dodasz prosty warunek oceniający protokół HTTP komunikatu żądania
czasownik GET
(w przeciwieństwie do PUT
, POST
itp.) w dowolnym identyfikatorze URI po ścieżce podstawowej.
(Dowiedz się, jak tworzyć instrukcje warunkowe w sekcjach Zmienne przepływu i ).
Nowy proces o nazwie Flow-1 pojawi się w menu nawigacji.
Teraz zwróć uwagę na konfigurację XML punktu końcowego serwera proxy. Wybierz Flow-1 Menu Nawigacja.
Zobaczysz konfigurację opisaną poniżej.
<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
W dalszej części artykułu dowiesz się więcej o tworzeniu warunków i używaniu zmienne: