Konfigurowanie przepływów

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Przepływy to podstawowe elementy składowe serwerów proxy interfejsów API. Przepływy umożliwiają programowanie działania interfejsu API, umożliwiając skonfigurowanie sekwencji, w której zasady i kod są wykonywane przez serwer proxy interfejsu API.

Ogólne omówienie przepływów znajdziesz w artykule o kontrolowaniu działania serwera proxy za pomocą przepływów.

Z tego artykułu dowiesz się, jak tworzyć przepływy warunkowe i dodawać logikę (zasady) do przepływów na wysokim poziomie. Sztuka tworzenia warunków obejmuje więcej szczegółów niż omówiono w tym temacie. Więcej informacji znajdziesz w artykułach Omówienie zmiennych przepływu i Warunki ze zmiennymi przepływu.

Dołączanie zasad do przepływów

Edge ma wiele różnych typów wstępnie zdefiniowanych zasad, które pozwalają wdrażać zabezpieczenia, zarządzać ruchem i manipulować wiadomościami. Zasady umożliwiają też dodanie własnego kodu niestandardowego w celu pełnego dostosowania przetwarzania wiadomości.

Na przykład:

  • Dołącz zasadę zabezpieczeń OAuth do przebiegu wstępnego żądania punktu końcowego ProxyEndpoint. Żądanie PreFlow punktu ProxyEndpoint jest pierwszym przepływem w potoku, dlatego możesz natychmiast odrzucić żądanie, jeśli narusza ono Twoje zasady zabezpieczeń.
  • Dołącz zasadę konwersji JSON na XML do odpowiedzi PostFlow punktu końcowego docelowego, aby przekonwertować odpowiedź z JSON na XML.
  • Dołącz zasadę JavaScript do JavaScript , aby wykonywać kod JavaScript w celu przetworzenia żądania

Po utworzeniu przepływu warunkowego będzie on dostępny w załączniku do zasad. Po wybraniu procesu kliknij ikonę + Krok na diagramie żądania lub odpowiedzi, aby dodać do procesu nową lub istniejącą zasadę.

W menu nawigacyjnym wyróżniony jest przykładowy problem z przepływem warunkowym o nazwie, a w panelu procesu – przycisk Krok.

W panelu Dodaj krok utworzona zostanie nowa instancja zasady o typie zasady Limit i wyświetlanej nazwie Limit-2.

Dołączając zasadę do wybranego procesu, konfigurujesz serwer proxy interfejsu API tak, aby wymuszał zasadę limitu tylko w przypadku żądań wysyłanych do tej kombinacji identyfikatora URI przepływu i czasownika. Jeśli na przykład dołączysz zasadę do procesu learn w żądaniu, w widoku kodu w edytorze serwera proxy zostanie wygenerowany następujący kod 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 do serwera proxy interfejsu API przychodzi żądanie GET z wzorcem URI o wartości .../issue/** (/issue/ z dowolnym elementem identyfikatora URI po ostatnim ukośniku), dla tego wywołania interfejsu API jest egzekwowany limit.

Informacje o przepływach warunkowych

Wszelkie zasady powiązane z przepływem (PreFlow lub PostFlow) są zawsze realizowane. Jednak zasady w przepływie warunkowym są wykonywane tylko wtedy, gdy warunek przepływu przyjmie wartość prawda.

Podczas przetwarzania żądania i odpowiedzi wykonywany jest tylko 1 proces warunkowy na segment – pierwszy przepływ, którego warunek przyjmuje wartość prawda. Oznacza to, że w ramach każdego z tych działań możesz wykonać 1 proces warunkowy:

  • Potok żądań ProxyEndpoint
  • Potok żądań elementu TargetEndpoint
  • Potok odpowiedzi ProxyEndpoint
  • Potok odpowiedzi elementu TargetEndpoint

Film: obejrzyj krótki film, aby dowiedzieć się więcej o procesach warunkowych.

Na przykład ta definicja punktu ProxyEndpoint przedstawia przepływ warunkowy wykonywany przez ProxyEndpoint przy każdym żą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 zmiennej przepływu request.verb. Zmienna procesu nosi nazwę referencji, która zawiera informacje o stanie powiązane z transakcją interfejsu API przetworzoną przez Edge. Edge definiuje wiele zmiennych stanu, do których możesz się odwoływać.

Usługi REST to zbiory zasobów interfejsu API. Zasób interfejsu API to fragment ścieżki identyfikatora URI identyfikujący encję, do której deweloperzy mogą uzyskać dostęp przez wywołanie interfejsu API. Jeśli na przykład backend usługi udostępnia raporty pogodowe i prognozy pogody, interfejs API może zdefiniować 2 procesy warunkowe mapowane na te zasoby interfejsu API: /reports i /forecasts. Jeśli wywołanie interfejsu API zawiera w adresie URL jeden z tych zasobów, warunek przyjmuje wartość prawda i wykonywana jest logika powiązana z przepływem warunkowym.

Następnie deweloperzy aplikacji uzyskują dostęp do Twoich zasobów, wysyłając żądania do adresu URL w takiej postaci:

http://myAPIs.myCo.com/weather/reports

lub

http://myAPIs.myCo.com/weather/forecasts

W serwerze proxy interfejsu API możesz zdefiniować przepływ warunkowy odpowiadający konkretnemu 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łasz się do zmiennej przepływu proxy.pathsuffix, która zawiera przyrostek adresu URL używanego do uzyskiwania dostępu do serwera proxy interfejsu API. Możesz następnie dołączyć różne zasady do procesu warunkowego dla każdego zasobu.

Dodawanie przepływu warunkowego

W tym krótkim przykładzie konfigurujesz przepływ, który jest wykonywany tylko wtedy, gdy komunikatem żądania jest HTTP GET.

Aby dodać proces warunkowy, wybierz kartę Develop (Programowanie) w kreatorze proxy interfejsów API.

Karta Programowanie Kreatora proxy

Kliknij ikonę + w wybranym punkcie końcowym.

Przycisk dodawania procesu warunkowego

Formularz Nowy przepływ warunkowy pozwala nazwać przepływ i skonfigurować warunek. W poniższym przykładzie dodasz prosty warunek, który ocenia kod HTTP żądania z żądaniem czasownika GET (zamiast PUT, POST itd.) w dowolnym identyfikatorze URI po ścieżce podstawowej.

W panelu Nowy przepływ warunkowy przepływ ma nazwę Flow-1, a typ warunku, ścieżka i czasownik są skonfigurowane.

(Informacje o tworzeniu instrukcji warunkowych znajdziesz w artykule Zmienne i warunki przepływu).

Nowa procedura o nazwie Flow-1 pojawi się teraz w menu Nawigatora.

Przepływ-1 jest zaznaczony

Teraz spójrz na konfigurację XML punktu ProxyEndpoint. Wybierz Flow-1 w menu Flow-1.

Zobaczysz taką 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

Więcej informacji o tworzeniu warunków i używaniu zmiennych znajdziesz w tych tematach: