Konfigurowanie przepływów

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ę.

W menu Nawigatora wyróżniony jest przykładowy przepływ warunkowy o nazwie. W panelu przepływu wyświetla się przycisk Krok.

W panelu Dodaj krok zostanie utworzone nowe wystąpienie zasady o typie Limit 2, w którym zostanie wyświetlona nazwa limitu.

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.

Karta Programowanie serwera proxy

Kliknij ikonę + w wybranym punkcie końcowym.

Dodaj przycisk przepływu warunkowego

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.

W panelu Nowy przepływ warunkowy przepływ będzie miał nazwę Flow-1, a typ, ścieżka i czasownik zostaną skonfigurowane.

(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.

Przepływ 1 wyróżniony

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: