Akış yapılandırması referansı

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Bu bölümde, API proxy akışları.

Hiyerarşi ve söz dizimi

Aşağıdaki örneklerde öğe hiyerarşisi ve akış yapılandırmasının söz dizimi gösterilmektedir öğeler:

Öğe Hiyerarşisi

Aşağıdaki örnekte, <ProxyEndpoint> ve <TargetEndpoint> öğeleri:

<ProxyEndpoint | TargetEndpoint>
    <PreFlow>
          <Request>
                <Step>
                    <Condition>
                    <Name>
          <Response>
                <Step>
                    <Condition>
                    <Name>
          <Description>
    <Flows>
          <Flow>
                <Description>
                <Condition>
                <Request>
                      <Step>
                          
                <Response>
                      <Step>
                          
          <Description>
    <PostFlow>
          <Request>
                <Step>
                    
          <Response>
                <Step>
                    
          <Description>
    <PostClientFlow> (<ProxyEndpoint> only)
          <Response>
                
          <Description>

      // Additional configuration elements

</ProxyEndpoint | TargetEndpoint>

Söz dizimi

Aşağıdaki örnekte akış yapılandırma öğelerinin söz dizimi gösterilmektedir. Bunların her biri öğeleri aşağıdaki bölümlerde ayrıntılı olarak açıklanmıştır:

<!-- ProxyEndpoint flow configuration file -->
<ProxyEndpoint ... >
  ...
  <PreFlow name="flow_name">
    <Description>flow_description</Description>
    <Request>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Request>
    <Response>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Response>
  </PreFlow>
  <Flows name="flow_name">
    <Flow name="conditional_flow_name">
      <Description>flow_description</Description>
      <Condition>property operator "value"</Condition>
      <Request>
        <Step>
          <Condition>property operator "value"</Condition>
          <Name>policy_name</Name>
        </Step>
        ...
      </Request>
      <Response>
        <Step>
          <Condition>property operator "value"</Condition>
          <Name>policy_name</Name>
        </Step>
        ...
      </Response>
    </Flow>
  </Flows>
  <PostFlow name="flow_name">
    <Description>flow_description</Description>
    <Request>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Request>
    <Response>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Response>
  </PostFlow>
  <PostClientFlow name="flow_name">
    <Description>flow_description</Description>
    <Response>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Response>
  </PostClientFlow>
  ...
</ProxyEndpoint>

<!-- TargetEndpoint flow configuration file -->
<TargetEndpoint ... >
  ...
  <PreFlow name="flow_name">
    <Description>flow_description</Description>
    <Request>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Request>
    <Response>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Response>
  </PreFlow>
  <Flows name="flow_name">
    <Flow name="conditional_flow_name">
      <Description>flow_description</Description>
      <Condition>property operator "value"</Condition>
      <Request>
        <Step>
          <Condition>property operator "value"</Condition>
          <Name>policy_name</Name>
        </Step>
        ...
      </Request>
      <Response>
        <Step>
          <Condition>property operator "value"</Condition>
          <Name>policy_name</Name>
        </Step>
        ...
      </Response>
    </Flow>
    ...
  </Flows>
  <PostFlow name="flow_name">
    <Description>flow_description</Description>
    <Request>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Request>
    <Response>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Response>
  </PostFlow>
  ...
</TargetEndpoint>

PreFlow, Koşullu Akışı, PostFlow ve PostClientFlow'u tanımlamak için bu öğeleri kullanırsınız birkaç adım var.

<Condition>

Çalışma zamanında işlenen bir ifadeyi tanımlar. İfade true ise koşulla ilişkili adım veya akış yürütülür. Öğe ifadesi yanlış olarak değerlendirilirse adım veya akış yok sayılır.

Tür Dize
Üst Öğeler <Flow>
<Step>
Alt Öğeler Yok

Hangi ayarı kullandığınıza bağlı olarak, bir koşulu belirli bir adıma veya akışın tamamına uygulayabilirsiniz. <Flow> veya <Step> öğesindeki öğe:

// Condition can apply to just one step:        // Or to the flow:
<Flows>                                         <Flows>
  <Flow>                                          <Flow>
    <Step>                                          <Condition>
      <Condition>                                   <Step>
      <Name>                                          <Name>
      ...                                             ...
    ...                                             ...
  ...                                             ...
</Flows>                                        </Flows>

<Step> içindeki bir koşul doğru olarak değerlendirilirse Edge bu adımı yürütür. Koşul değeri yanlış olarak değerlendirilir. Edge, bu adımı atlar.

<Flow> içindeki bir koşul doğru olarak değerlendirilirse Edge, akıştaki tüm adımları işler. Eğer koşul yanlış olarak değerlendirilir. Edge, akışın tamamını atlar.

Söz dizimi

<Condition> öğesi şu söz dizimini kullanır:

<Condition>property operator "value"</Condition>

Burada:

property
Reklam öğenizde kullanmak istediğiniz akış değişkeni özelliği koşul. Örneğin, request akış değişkeni şu ada sahip özelliklere sahiptir: path ve content. Bunları bir koşulda kullanmak için flow_variable[nokta]property_name:
request.path
request.content

Akış değişkenlerinin ve özelliklerinin tam listesi için Akış değişkenleri referansı.

operator
Koşulunuzun nasıl değerlendirildiğini tanımlayan bir yapı. Genel operatörler şunları içerir:
>     greater than           <=    less than or equal to
<     less than              >=    greater than or equal to
=     equals                 &&    and
!=    not equals             ||    or

~~    JavaRegex
~     Matches
/~    MatchesPath
.

Tam liste için bkz. Operatörler Koşullar referansı.

"value"
Akış değişkeni özelliğinin değerlendirildiği değer. Bu genellikle bir (tam sayı veya dize gibi temel bir tür olmalıdır). Örneğin, 200 veya "/kedi". Değer, kalıp eşleştirme için yıldız işaretleri ve diğer karakterler gibi joker karakterler ekleme şurada açıklandığı: Koşullarla kalıp eşleştirme.

1. Örnek

Aşağıdaki örnekte, request akış değişkeninin verb olup olmadığı kontrol edilir özelliği "GET" şeklindedir:

<!-- api-platform/reference/examples/flow-segments/condition-1.xml -->
<ProxyEndpoint name="default">
  <PreFlow name="my-preFlows">
    <Description>My first PreFlow</Description>
    <Request>
      <Step>
        <Condition>request.verb = "GET"</Condition>
        <Name>Log-Request-OK</Name>
      </Step>
    </Request>
  </PreFlow>
  ...
</ProxyEndpoint>

İstek bir "GET" ise bu örnek, "Log-Request-OK"i yürütür politikası.

2. Örnek

Aşağıdaki örnekte yanıt kodu kontrol edilir:

<!-- api-platform/reference/examples/flow-segments/condition-2.xml -->
<ProxyEndpoint name="default">
  <PreFlow name="my-preFlows">
    <Description>My first PreFlow</Description>
    <Response>
      <Step>
        <Condition>response.status.code LesserThanOrEquals 300</Condition>
        <Name>Log-Response-OK</Name>
      </Step>
      <Step>
        <Condition>response.status.code GreaterThan 300</Condition>
        <Name>Log-Response-NOT-OK</Name>
      </Step>
    </Response>
  </PreFlow>
  ...
</ProxyEndpoint>

Kodun değerine bağlı olarak farklı bir politika yürütülür.

Özellikler

<Condition> öğesinin özelliği yok.

Alt Öğeler

<Condition> öğesinin alt öğesi yok.

<Description>

Akışı, kullanıcıların okuyabileceği şekilde açıklar. Bu öğeyi aktaracağım. Açıklama harici olarak gösterilmez.

Tür Dize
Üst Öğeler <Flow>
<PreFlow>
<PostFlow>
Alt Öğeler Yok

Söz dizimi

<Description> öğesi şu söz dizimini kullanır:

<Description>flow_description</Description>

Örnek

Aşağıdaki örnekte<Description> akış:

<!-- api-platform/reference/examples/flow-segments/description-1.xml -->
<ProxyEndpoint name="default">
  <Flows name="my-conditional-flows">
    <Flow name="reports">
      <Request>
        <Description>Based on the path suffix, determine which flow to use</Description>
        <Step>
          <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition>
          <Name>XML-to-JSON-1</Name>
        </Step>
        <Step>
          <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition>
          <Name>XML-to-JSON-1</Name>
        </Step>
      </Request>
    </Flow>
  </Flows>
  ...
</ProxyEndpoint>

Özellikler

<Description> öğesinin özelliği yok.

Alt Öğeler

<Description> öğesinin alt öğesi yok.

<Flow>

Edge'in yürüttüğü özel bir adım grubu tanımlar.

Tür Karmaşık nesne
Üst Öğeler <Flows>
Alt Öğeler <Condition>
<Description>
<Request>
<Response>

İsterseniz <Flow> için bir <Condition> belirtebilirsiniz. Bu durumda, Edge yalnızca koşul doğru olarak değerlendirilirse akıştaki adımları içerir. Aksi takdirde, Edge akışı sağlar.

Bir <Flows> öğesi, her biri kendi koşuluna sahip birden fazla <Flow> öğesi içerebilir adım adım anlatılmıştır. Birden fazla <Flow> öğesi olduğunda, Edge yalnızca içinde yer alan ilk öğeyi yürütür. koşul yoktur veya koşul doğru olarak değerlendirilir.

Her zaman çalışan bir varsayılan akış tanımlayabilirsiniz (diğer koşullu akışların hiçbiri çalışmadıysa). API proxy'nizin nasıl yapılandırıldığına bağlı olarak bu, kötü amaçlı yazılımlara karşı koruma saldırılarını kapsamaktadır.

Söz dizimi

<Flow> öğesi şu söz dizimini kullanır:

<Flow name="conditional_flow_name">
  <Description>flow_description</Description>
  <Condition>property operator "value"</Condition>
  <Request>
    <Step>
      <Condition>property operator "value"</Condition>
      <Name>policy_name</Name>
    </Step>
    ...
  </Request>
  <Response>
    <Step>
      <Condition>property operator "value"</Condition>
      <Name>policy_name</Name>
    </Step>
    ...
  </Response>
</Flow>

<Flow> öğesinin tüm alt öğeleri isteğe bağlıdır.

1. Örnek

Aşağıdaki örnekte her zaman "Log-Message-OK" yürütülen basit bir <Flow> gösterilmektedir politika:

<!-- api-platform/reference/examples/flow-segments/flow-1.xml -->
<ProxyEndpoint name="default">
  <Flows name="my-flow">
    <Flow>
      <Request>
        <Step>
          <Name>Log-Message-OK</Name>
        </Step>
      </Request>
    </Flow>
  </Flows>
  ...
</ProxyEndpoint>

2. Örnek

Aşağıdaki örnekte her biri kendi adıma sahip birden çok adım içeren bir <Flow> gösterilmektedir koşul:

<!-- api-platform/reference/examples/flow-segments/flow-2.xml -->
<ProxyEndpoint name="default">
  <Flows name="my-conditional-flows">
    <Flow name="reports">
      <Request>
        <Description>Based on the path suffix, determine which flow to use</Description>
        <Step>
          <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition>
          <Name>XML-to-JSON-1</Name>
        </Step>
        <Step>
          <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition>
          <Name>Verify-Auth-1</Name>
        </Step>
      </Request>
    </Flow>
  </Flows>
  ...
</ProxyEndpoint>

3. Örnek

Aşağıdaki örnekte bir Koşullu Akıştaki birden fazla akış gösterilmektedir:

<!-- api-platform/reference/examples/flow-segments/flows-2.xml -->
<ProxyEndpoint name="default">
  <Flows>
    <Flow name="my-flow-1">
      <Response>
        <Step>
          <Condition>response.status.code = 200</Condition>
          <Name>Assign-Message-1</Name>
        </Step>
      </Response>
    </Flow>
    <Flow name="my-flow-2">
      <Response>
        <Step>
          <Condition>response.status.code >= 400</Condition>
          <Name>Assign-Message-2</Name>
        </Step>
      </Response>
    </Flow>
    <Flow name="my-flow-3">
      <Response>
        <Step>
          <Condition>response.status.code >= 300</Condition>
          <Name>Assign-Message-3</Name>
        </Step>
      </Response>
    </Flow>
  </Flows>
  ...
</ProxyEndpoint>

Edge, bir segmentte yalnızca bir akış yürütür. şuna sahip olmayan ilk akışı yürütür: durumu doğru olarak çözümlenen bir koşulu yoktur.

Özellikler

Aşağıdaki tabloda <Flow> öğesinin özellikleri açıklanmaktadır:

Özellik Tür Açıklama
name Dize (Gerekli) Akış için benzersiz bir kimlik. Örneğin, &quot;My-Conditional-Flow-1&quot;. Ad, boşluk veya başka özel karakterler içeremez.

Alt Öğeler

Aşağıdaki tabloda <Flow> alt öğeleri açıklanmaktadır:

Alt Öğe Tür Açıklama
<Condition> Dize Çalışma zamanında işlenen bir koşullu ifadeyi tanımlar. İfadede doğru değerine ayarlanırsa akış (ve tüm adımları) yürütülür. İfade false ise akış (ve tüm adımları) yoksayılır.
<Description> Dize Akışla ilgili kısa bir açıklama sağlar. Bu açıklama harici değil görünür.
<Request> Karmaşık nesne İstek segmenti için adımları ve koşulları belirtir.
<Response> Karmaşık nesne Yanıt segmenti için adımları ve koşulları belirtir.

<Flows>

Sıfır veya daha fazla <Flow> öğe içerir.

Tür Karmaşık nesne
Üst Öğeler <ProxyEndpoint>
<TargetEndpoint>
Alt Öğeler <Flow>

<Flows> içinde birden fazla <Flow> öğesi varsa yalnızca bir <Flow> yürütülür. Bu <Condition> içermeyen veya koşulu çözümlenen ilk akış olur doğrudur.

Her zaman çalışan bir varsayılan akış tanımlayabilirsiniz (diğer akışlardan hiçbiri çalışmadıysa). API proxy'nizin nasıl yapılandırıldığına bağlı olarak bu, kötü amaçlı yazılımlara karşı koruma saldırılarını kapsamaktadır.

Söz dizimi

<Flows> öğesi şu söz dizimini kullanır:

<Flows name="flow_name">
  <Flow name="conditional_flow_name">
    <Description>flow_description</Description>
    <Condition>property operator "value"</Condition>
    <Request>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Request>
    <Response>
      <Step>
        <Condition>property operator "value"</Condition>
        <Name>policy_name</Name>
      </Step>
      ...
    </Response>
  </Flow>
</Flows>

<Flows> öğesinin tüm alt öğeleri isteğe bağlıdır.

1. Örnek

Aşağıdaki örnekte tek bir <Flow> içeren basit bir <Flows> öğesi gösterilmektedir:

<!-- api-platform/reference/examples/flow-segments/flows-1.xml -->
<ProxyEndpoint name="default">
  <Flows name="my-conditional-flows">
    <Flow name="reports">
      <Request>
        <Description>Based on the path suffix, determine which flow to use</Description>
        <Step>
          <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition>
          <Name>XML-to-JSON-1</Name>
        </Step>
        <Step>
          <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition>
          <Name>Verify-Auth-1</Name>
        </Step>
      </Request>
    </Flow>
  </Flows>
  ...
</ProxyEndpoint>

Edge, proxy akış değişkeni. Yol soneki bu koşulların ikisiyle de eşleşmiyorsa Edge bu akışı yürütmez.

2. Örnek

Aşağıdaki örnekte, <Flows> içinde her biri kendine ait olan birden fazla <Flow> öğesi gösterilmektedir <Condition>:

<!-- api-platform/reference/examples/flow-segments/flows-2.xml -->
<ProxyEndpoint name="default">
  <Flows>
    <Flow name="my-flow-1">
      <Response>
        <Step>
          <Condition>response.status.code = 200</Condition>
          <Name>Assign-Message-1</Name>
        </Step>
      </Response>
    </Flow>
    <Flow name="my-flow-2">
      <Response>
        <Step>
          <Condition>response.status.code >= 400</Condition>
          <Name>Assign-Message-2</Name>
        </Step>
      </Response>
    </Flow>
    <Flow name="my-flow-3">
      <Response>
        <Step>
          <Condition>response.status.code >= 300</Condition>
          <Name>Assign-Message-3</Name>
        </Step>
      </Response>
    </Flow>
  </Flows>
  ...
</ProxyEndpoint>

Edge, koşulu doğru olarak değerlendirilen bir segmentte yalnızca ilk akışı yürütür. Şu tarihten sonra: Böylece, Edge segmentteki kalan akışları atlar.

3. Örnek

Aşağıdaki örnekte bir "default" (varsayılan) değeri gösterilmektedir <Flow>:

<!-- api-platform/reference/examples/flow-segments/flows-3.xml -->
<ProxyEndpoint name="default">
  <Flows>
    <Flow name="my-conditional-flow-1">
      <Response>
        <Step>
          <Condition>response.status.code = 200</Condition>
          <Name>Assign-Message-1</Name>
        </Step>
      </Response>
    </Flow>
    <Flow name="my-conditional-flow-2">
      <Response>
        <Step>
          <Condition>response.header.someheader = "42"</Condition>
          <Name>Assign-Message-2</Name>
        </Step>
      </Response>
    </Flow>
    <Flow name="my-default-flow">
      <Response>
        <Step>
          <Name>Assign-Message-3</Name>
        </Step>
      </Response>
    </Flow>
  </Flows>
  ...
</ProxyEndpoint>

Edge, koşulu doğru olarak değerlendirilen bir segmentte yalnızca ilk akışı yürütür. Eğer hiçbir koşullu akış yürütülmez, ardından bu örnekteki üçüncü akış (koşul olmadan) yürütülür.

Varsayılan akış, proje yönetiminde kötü amaçlı yazılımlara karşı koruma saldırılarını kapsamaktadır.

Özellikler

<Flows> öğesinin özelliği yok.

Alt Öğeler

<Flows> öğesi aşağıdaki alt öğelere sahiptir:

Alt Öğe Tür Açıklama
<Flow> Karmaşık nesne Koşullu Akış içindeki olası bir adım grubunu tanımlayan akış.

<Name>

<Flow> içinde yürütülecek politikanın kimliğini belirtir.

Tür Dize
Üst Öğeler <Step>
Alt Öğeler Yok

Söz dizimi

<Name> öğesi şu söz dizimini kullanır:

<Name>policy_name</Name>

Örnek

Aşağıdaki örnekte, akışlara adlarına göre eklenen iki politika gösterilmektedir:

<!-- api-platform/reference/examples/flow-segments/name-1.xml -->
<ProxyEndpoint name="default">
  <Flows name="my-conditional-flows">
    <Flow name="reports">
      <Request>
        <Description>Based on the path suffix, determine which flow to use</Description>
        <Step>
          <Condition>proxy.pathsuffix MatchesPath "/reports"</Condition>
          <Name>XML-to-JSON-1</Name>
        </Step>
        <Step>
          <Condition>proxy.pathsuffix MatchesPath "/forecasts"</Condition>
          <Name>Verify-Auth-1</Name>
        </Step>
      </Request>
    </Flow>
  </Flows>
  ...
</ProxyEndpoint>

Özellikler

<Name> öğesinin özelliği yok.

Alt Öğeler

<Name> öğesinin alt öğesi yok.

<PostFlow>

İstek ve yanıtın PostFlow'da uygulanması gereken adımları tanımlar.

Tür Karmaşık nesne
Üst Öğeler <ProxyEndpoint>
<TargetEndpoint>
Alt Öğeler <Description>
<Request>
<Response>

<PostFlow> öğesi şu söz dizimini kullanır:

Söz dizimi

<PostFlow name="flow_name">
  <Description>flow_description</Description>
  <Request>
    <Step>
      <Condition>property operator "value"</Condition>
      <Name>policy_name</Name>
    </Step>
    ...
  </Request>
  <Response>
    <Step>
      <Condition>property operator "value"</Condition>
      <Name>policy_name</Name>
    </Step>
    ...
  </Response>
</PostFlow>

Örnek

Aşağıdaki örnekte hem istek hem de yanıt için adımları içeren bir PostFlow gösterilmektedir tanımlanır:

<!-- api-platform/reference/examples/flow-segments/postflow-1.xml -->
<ProxyEndpoint name="default">
  <PostFlow name="my-postflows">
    <Description>My first PostFlow</Description>
    <Request>
      <Step>
        <Condition>request.verb = "GET"</Condition>
        <Name>Log-Request-OK</Name>
      </Step>
    </Request>
    <Response>
      <Step>
        <Name>Set-Response-Headers</Name>
      </Step>
    </Response>
  </PostFlow>
  ...
</ProxyEndpoint>

Özellikler

Aşağıdaki tabloda <PostFlow> öğesinin özellikleri açıklanmaktadır:

Özellik Tür Açıklama
name Dize Akış için benzersiz bir kimlik (uç nokta içinde benzersiz). Örneğin, "My-PostFlow-1". İlgili içeriği oluşturmak için kullanılan değeri boşluk veya başka özel karakterler içeremez.

Alt Öğeler

Aşağıdaki tabloda <PostFlow> alt öğeleri açıklanmaktadır:

Alt Öğe Tür Açıklama
<Description> Dize Akışla ilgili kısa bir açıklama sağlar.
<Request> Karmaşık nesne İsteğin PostFlow'u sırasında yürütülecek politikaları tanımlar.
<Response> Karmaşık nesne Yanıtın PostFlow'u sırasında yürütülecek politikaları tanımlar.

<PostClientFlow>

ProxyEndpoint'te yalnızca teslim edilir. Bu politikalar genellikle yanıtla ilgili mesajları günlüğe kaydeder.

Tür Karmaşık nesne
Üst Öğeler <ProxyEndpoint>
Alt Öğeler <Description>
<Response>

Söz dizimi

<PostClientFlow> öğesi şu söz dizimini kullanır:

<PostClientFlow name="flow_name">
  <Description>flow_description</Description>
  <Response>
    <Step>
      <Condition>property operator "value"</Condition>
      <Name>policy_name</Name>
    </Step>
    ...
  </Response>
</PostClientFlow>

<PostClientFlow> öğesinin tüm alt öğeleri isteğe bağlıdır.

Örnek

Aşağıdaki örnekte tek bir politika yürüten basit bir PostClientFlow gösterilmektedir:

<!-- api-platform/reference/examples/flow-segments/postclientflow-1.xml -->
<ProxyEndpoint name="default">
  <PostClientFlow name="my-postclientflows">
    <Description>My first PostClientFlow. Processed after the response is sent back to the client.</Description>
    <Response>
      <Step>
        <Name>Message-Logging-OK</Name>
      </Step>
    </Response>
  </PostClientFlow>
  ...
</ProxyEndpoint>

Özellikler

Aşağıdaki tabloda <PostClientFlow> öğesinin özellikleri açıklanmaktadır:

Özellik Tür Açıklama
name Dize Akış için benzersiz bir kimlik. Ad, boşluk veya başka özel bir alan içeremez karakteri ekleyin. Örneğin, "My-PostClientFlow-1".

Alt Öğeler

Aşağıdaki tabloda <PostClientFlow> alt öğeleri açıklanmaktadır:

Alt Öğe Tür Açıklama
<Description> Dize Akışla ilgili kısa bir açıklama sağlar.
<Response> Karmaşık nesne Yanıtın PostFlow'u sırasında yürütülecek politikaları tanımlar.

<PreFlow>

İstek ve yanıtın PreFlow'da yürütülecek politikaları tanımlar.

Tür Karmaşık nesne
Üst Öğeler <ProxyEndpoint>
<TargetEndpoint>
Alt Öğeler <Description>
<Request>
<Response>

Söz dizimi

<PreFlow> öğesi şu söz dizimini kullanır:

<PreFlow name="flow_name">
  <Description>flow_description</Description>
  <Request>
    <Step>
      <Condition>property operator "value"</Condition>
      <Name>policy_name</Name>
    </Step>
    ...
  </Request>
  <Response>
    <Step>
      <Condition>property operator "value"</Condition>
      <Name>policy_name</Name>
    </Step>
    ...
  </Response>
</PreFlow>

<PreFlow> öğesinin tüm alt öğeleri isteğe bağlıdır.

Örnek

Aşağıdaki örnekte, istek ve yanıt akışı tanımlanmış bir PreFlow gösterilmektedir:

<!-- api-platform/reference/examples/flow-segments/preflow-1.xml -->
<ProxyEndpoint name="default">
  <PreFlow name="my-preFlows">
    <Description>My first PreFlow</Description>
    <Request>
      <Step>
        <Condition>request.verb = "GET"</Condition>
        <Name>Log-Request-OK</Name>
      </Step>
    </Request>
    <Response>
      <Step>
        <Condition>response.status.code LesserThanOrEquals 300</Condition>
        <Name>Log-Response-OK</Name>
      </Step>
      <Step>
        <Condition>response.status.code GreaterThan 300</Condition>
        <Name>Log-Response-NOT-OK</Name>
      </Step>
    </Response>
  </PreFlow>
  ...
</ProxyEndpoint>

Özellikler

Aşağıdaki tabloda <PreFlow> öğesinin özellikleri açıklanmaktadır:

Özellik Tür Açıklama
name Dize Akış için benzersiz bir kimlik. Ad, boşluk veya başka özel bir alan içeremez karakteri ekleyin. Örneğin, "My-PreFlow-1".

Alt Öğeler

Aşağıdaki tabloda <PreFlow> alt öğeleri açıklanmaktadır:

Alt Öğe Tür Açıklama
<Description> Dize Akışla ilgili kısa bir açıklama sağlar.
<Request> Karmaşık nesne İsteğin PreFlow'u sırasında yürütülecek politikaları tanımlar.
<Response> Karmaşık nesne Yanıtın PreFlow'u sırasında yürütülecek politikaları tanımlar.

<Request>

Akışın istek segmenti sırasında yürütülecek politikaları tanımlar.

Tür Karmaşık nesne
Üst Öğeler <Flow>
<PreFlow>
<PostFlow>
Alt Öğeler <Condition>
<Step>

Söz dizimi

<Request> öğesi şu söz dizimini kullanır:

<Request>
  <Step>
    <Condition>property operator "value"</Condition>
    <Name>policy_name</Name>
  </Step>
  ...
</Request>

<Request> öğesinin tüm alt öğeleri isteğe bağlıdır.

Örnek

Aşağıdaki örnekte, istek için hem PreFlow hem de Akış Sonrası:

<!-- api-platform/reference/examples/flow-segments/request-1.xml -->
<ProxyEndpoint name="default">
  <PreFlow name="my-preFlows">
    <Description>My first PreFlow</Description>
    <Request>
      <Step>
        <Condition>request.verb = "GET"</Condition>
        <Name>Log-Request-OK</Name>
      </Step>
    </Request>
  </PreFlow>
  <PostFlow name="my-postflows">
    <Description>My first PostFlow</Description>
    <Request>
      <Step>
        <Condition>request.verb = "GET"</Condition>
        <Name>Log-Request-OK</Name>
      </Step>
    </Request>
  </PostFlow>
  ...
</ProxyEndpoint>

Özellikler

<Request> öğesinin özelliği yok.

Alt Öğeler

Aşağıdaki tabloda <Request> alt öğeleri açıklanmaktadır:

Alt Öğe Tür Açıklama
<Condition> Karmaşık nesne İstek segmentindeki adımların yürütülüp yürütülmeyeceğini belirler.
<Step> Dize İstek segmenti içinde yürütülecek bir politikayı belirtir.

<Response>

Akışın yanıt segmenti sırasında yürütülecek politikaları tanımlar.

Tür Karmaşık nesne
Üst Öğeler <Flow>
<PreFlow>
<PostClientFlow>
<PostFlow>
Alt Öğeler <Condition>
<Step>

Söz dizimi

<Response> öğesi şu söz dizimini kullanır:

<Response>
  <Step>
    <Condition>property operator "value"</Condition>
    <Name>policy_name</Name>
  </Step>
  ...
</Response>

<Response> öğesinin tüm alt öğeleri isteğe bağlıdır.

Örnek

Aşağıdaki örnekte, hem PreFlow hem de Akış Sonrası:

<!-- api-platform/reference/examples/flow-segments/response-1.xml -->
<ProxyEndpoint name="default">
    <PreFlow name="my-preFlows">
        <Description>My first PreFlow</Description>
        <Response>
            <Step>
                <Condition>response.status.code LesserThanOrEquals 300</Condition>
                <Name>Log-Response-OK</Name>
            </Step>
            <Step>
                <Condition>response.status.code GreaterThan 300</Condition>
                <Name>Log-Response-NOT-OK</Name>
            </Step>
        </Response>
    </PreFlow>
    <PostFlow name="my-postflows">
        <Description>My first PostFlow</Description>
        <Response>
            <Step>
                <Name>Set-Response-Headers</Name>
            </Step>
        </Response>
    </PostFlow>
  ...
</ProxyEndpoint>

Özellikler

<Response> öğesinin özelliği yok.

Alt Öğeler

Aşağıdaki tabloda <Response> alt öğeleri açıklanmaktadır:

Alt Öğe Tür Açıklama
<Condition> Dize Yanıt segmentindeki adımların yürütülüp yürütülmeyeceğini belirler.
<Step> Dize Yanıt segmenti içinde yürütülecek bir politikayı belirtir.

<Step>

Yürütülecek politikayı ve (isteğe bağlı olarak) yürütülüp yürütülmeyeceğini belirleyen bir koşulu belirtir bu politikayı izlemelisiniz.

Tür Karmaşık nesne
Üst Öğeler <Request>
<Response>
Alt Öğeler <Condition>
<Name>

Bir <Flow> içinde birden fazla adım tanımlanmış olabilir ve adımlar, akışın XML'sinde tanımlandıkları sıraya göre sıralayın.

Koşul içermeyen adımlar her zaman yürütülür. Koşul içeren adımlar yalnızca koşul doğru olarak değerlendirilir. Koşul yanlış olarak değerlendirilirse Edge bu adımı atlar.

Söz dizimi

<Step> öğesi şu söz dizimini kullanır:

<Step>
  <Condition>property operator "value"</Condition>
  <Name>policy_name</Name>
</Step>

Her <Step> için yalnızca bir <Condition> ve bir <Name> olabilir, ancak <Flow> içine birden fazla adım atanabilir.

<Step> öğesinin tüm alt öğeleri isteğe bağlıdır.

1. Örnek

Aşağıdaki örnekte koşul içeren bir adım ve koşul içermeyen bir adım gösterilmektedir:

<!-- api-platform/reference/examples/flow-segments/step-1.xml -->
<ProxyEndpoint name="default">
  <PostFlow name="my-postflows">
      <Description>My first PostFlow</Description>
      <Request>
          <Step>
              <Condition>request.verb = "GET"</Condition>
              <Name>Log-Request-OK</Name>
          </Step>
      </Request>
      <Response>
          <Step>
              <Name>Set-Response-Headers</Name>
          </Step>
      </Response>
  </PostFlow>
  ...
</ProxyEndpoint>

Koşul içermeyen adım, istek segmenti sırasında her seferinde yürütülür. Adım koşulu ile yalnızca istek bir "GET" olduğunda yürütülür yanıt sırasında bölümünü seçin.

2. Örnek

Aşağıdaki örnekte, tek bir segmentte birden çok adım gösterilmektedir:

<!-- api-platform/reference/examples/flow-segments/step-2.xml -->
<ProxyEndpoint name="default">
    <PostFlow name="PostFlow">
        <Response>
            <Step>
                <Name>Assign-Message-1</Name>
            </Step>
            <Step>
                <Name>Assign-Message-2</Name>
            </Step>
        </Response>
    </PostFlow>
  ...
</ProxyEndpoint>

Koşul içermeyen adımlar her zaman yürütülür.

Özellikler

<Step> öğesinin özelliği yok.

Alt Öğeler

Aşağıdaki tabloda <Step> alt öğeleri açıklanmaktadır:

Alt Öğe Tür Açıklama
<Condition> Dize Çalışma zamanında işlenen adım için koşullu ifade tanımlar. Öğe ifadesi doğru olarak değerlendirilir, ardından Edge adımı yürütür. İfade değerini eklemezseniz Edge bu adımı atlar.
<Name> Dize Mevcut akışta yürütülecek politikanın kimliğini belirtir.