Akış yapılandırması referansı

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Bu bölümde, API proxy akışlarınızı tanımlamak için kullandığınız XML öğeleri hakkında referans bilgiler sağlanmaktadır.

Hiyerarşi ve söz dizimi

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

Öğe Hiyerarşisi

Aşağıdaki örnekte, <ProxyEndpoint> ve <TargetEndpoint> öğeleri içindeki akış yapılandırması öğelerinin hiyerarşisi gösterilmektedir:

<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ırması öğelerinin söz dizimi gösterilmektedir. Bu öğelerin her biri, 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, Conditional Flow, PostFlow ve PostClientFlow yürütmenizi tanımlamak için bu öğeleri kullanırsınız.

<Condition>

Çalışma zamanında işlenen bir ifadeyi tanımlar. İfade doğru olarak değerlendirilirse koşulla ilişkili adım veya akış yürütülür. İfade yanlış olarak değerlendirilirse adım veya akış yoksayılır.

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

Öğeyi <Flow> veya <Step> öğesine koymanıza bağlı olarak bir koşulu belirli bir adıma veya bir akışın tamamına uygulayabilirsiniz:

// 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 yanlış olarak değerlendirilirse 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. Koşul yanlış olarak değerlendirilirse Edge tüm akışı atlar.

Söz dizimi

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

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

Burada:

property
Koşulunuzda kullanmak istediğiniz akış değişkeni özelliği. Örneğin, request akış değişkeninin path ve content adlı özellikleri vardır. Bunları bir koşulda kullanmak için flow_variable[nokta]property_name özelliğini belirtirsiniz:
request.path
request.content

Akış değişkenlerinin ve özelliklerinin tam listesi için Akış değişkenleri referansı bölümüne bakın.

operator
Koşulunuzun nasıl değerlendirildiğini tanımlayan bir yapı. Yaygın operatörler şunlardır:
>     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 Koşullar referansındaki Operatörler bölümüne bakın.

"value"
Akış değişkeni özelliğinin değerlendirilmesinde kullanılan değerdir. Bu genellikle tam sayı veya dize gibi temel bir türdür. Örneğin, 200 veya "/kedi". Bu değer, Koşullarla kalıp eşleştirme bölümünde açıklandığı gibi kalıp eşleştirme için yıldız işaretleri ve diğer karakterler gibi joker karakterler içerebilir.

1. Örnek

Aşağıdaki örnek, request akış değişkeninin verb özelliğinin "GET" olup olmadığını kontrol eder:

<!-- 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" politikasını yürütür.

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 terimlerle tanımlar. Kendinize veya diğer geliştiricilere akış hakkında bilgi sağlamak için bu öğeyi kullanın. Açıklama harici olarak görülemez.

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 akışın amacını belirten bir <Description> öğesi gösterilmektedir:

<!-- 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>

İsteğe bağlı olarak <Flow> öğesinde <Condition> belirtebilirsiniz. Bu durumda Edge, koşul doğru olarak değerlendirilirse yalnızca akıştaki adımları yürütür. Aksi takdirde Edge tüm akışı atlar.

Bir <Flows> öğesi, her birinin kendi koşulları ve adımları olan birden fazla <Flow> öğesi içerebilir. Birden fazla <Flow> öğesi olduğunda Edge yalnızca koşulun bulunmadığı veya koşulun doğru olarak değerlendirildiği ilk öğeyi yürütür.

Diğer koşullu akışların hiçbiri gerçekleştirmiyorsa, her zaman yürütülecek bir varsayılan akış tanımlayabilirsiniz. Bu, API proxy'nizin nasıl yapılandırıldığına bağlı olarak kötü amaçlı saldırılara karşı korumada yararlı bir araç olabilir.

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" politikasını yürüten basit bir <Flow> gösterilmektedir:

<!-- 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 koşulu olan birden fazla adım içeren bir <Flow> gösterilmektedir:

<!-- 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, Koşullu Akışta 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. Koşulu olmayan veya koşulu doğru olarak belirlenen ilk akışı yürütür.

Özellikler

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

Özellik Tür Açıklama
name Dize (Gerekli) Akışın benzersiz kimliği. Örneğin, "My-Conditional-Flow-1". 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 ifade tanımlar. İfade doğru olarak değerlendirilirse akış (ve tüm adımları) yürütülür. İfade yanlış olarak değerlendirilirse akış (ve tüm adımları) yoksayılır.
<Description> Dize Akışın kısa bir açıklamasını sağlar. Bu açıklama harici olarak gösterilmez.
<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> öğesi içerir.

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

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

Diğer akışların hiçbiri çalıştırmıyorsa her zaman yürütülecek bir varsayılan akış tanımlayabilirsiniz. Bu, API proxy'nizin nasıl yapılandırıldığına bağlı olarak kötü amaçlı saldırılara karşı korumada yararlı bir araç olabilir.

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şkeninden aldığı yol son ekine göre bu politikalardan birini yürütür. Yol son eki 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 kendi <Condition> değerine sahip birden fazla <Flow> öğesi 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, koşulu doğru olarak değerlendirilen bir segmentte yalnızca ilk akışı yürütür. Bunun ardından Edge segmentte kalan akışları atlar.

3. Örnek

Aşağıdaki örnekte "varsayılan" bir <Flow> gösterilmektedir:

<!-- 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. Hiçbir koşullu akış yürütülmezse bu örnekteki üçüncü akış (koşulsuz olarak) yürütülür.

Varsayılan akış, kötü amaçlı saldırılara karşı koruma konusunda yararlı bir araç olabilir.

Ö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çinde 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'unda uygulanacak 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:

<!-- 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ışın benzersiz bir kimliği (uç nokta içinde benzersizdir). Örneğin, "My-PostFlow-1". Değer, 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ışın kısa bir açıklamasını 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 istemciye yanıt döndürüldükten sonra yürütülen politikaları tanımlar. 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 politikayı 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ışın benzersiz kimliği. Ad, boşluk veya başka özel karakterler içeremez. Ö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ışın kısa bir açıklamasını 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'unda 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, bir istek ve tanımlı yanıt akışı olan 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ışın benzersiz kimliği. Ad, boşluk veya başka özel karakterler içeremez. Ö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ışın kısa bir açıklamasını 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 hem PreFlow hem de PostFlow'da istek için tanımlanan akışlar gösterilmektedir:

<!-- 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 PostFlow'da yanıt için tanımlanan akışlar gösterilmektedir:

<!-- 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ülmediğini belirler.
<Step> Dize Yanıt segmenti içinde yürütülecek bir politikayı belirtir.

<Step>

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

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

Bir <Flow>'da birden fazla adım tanımlanmış olabilir ve adımlar, akışın XML'inde tanımlandıkları sırayla yürütülür.

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ğerlendirilirse yürütülür. 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çinde birden fazla adım olabilir.

<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şulsuz 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şulu içermeyen adım, istek segmenti sırasında her defasında yürütülür. Koşullu adım, yalnızca istek yanıt segmenti sırasında "GET" olduğunda yürütülür.

2. Örnek

Aşağıdaki örnekte tek bir segmentteki 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 bir ifade tanımlar. İfade doğru olarak değerlendirilirse Edge bu adımı yürütür. İfade yanlış olarak değerlendirilirse Edge bu adımı atlar.
<Name> Dize Mevcut akışta yürütülecek politikanın kimliğini belirtir.