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 öğeleriyle ilgili referans bilgileri verilmektedir.
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> öğelerindeki akış yapılandırma öğ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ırma öğelerinin söz dizimi gösterilmektedir. Bu öğelerin her biri sonraki 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>Bu öğeleri PreFlow, Conditional Flow, PostFlow ve PostClientFlow yürütmenizi tanımlamak için 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 false (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 yerleştirmenize bağlı olarak, belirli bir adıma ya da akışın tamamına koşul uygulayabilirsiniz:
// Condition can apply to just one step: // Or to the flow:<Flows><Flows><Flow><Flow><Step><Condition><Condition><Step><Name><Name>... ... ... ... ... ... </Flows> </Flows>
Bir <Step> içindeki koşul doğru olarak değerlendirilirse Edge bu adımı yürütür. Koşul yanlış olarak değerlendirilirse Edge adımı atlar.
Bir <Flow> içindeki koşul doğru olarak değerlendirilirse Edge, akıştaki tüm adımları işler. Koşul yanlış olarak değerlendirilirse Edge, akışın tamamını 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,
requestakış değişkenininpathvecontentadlı özellikleri vardır. Bunları bir koşulda kullanmak için flow_variable[nokta]property_name öğesini belirtirsiniz:request.path request.content
Akış değişkenlerinin ve özelliklerinin tam listesi için Akış değişkenleri referansı başlıklı makaleyi inceleyin.
- operator
- Koşulunuzun nasıl değerlendirileceğ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ğerlendirildiği değer. Bu genellikle tam sayı veya dize gibi temel bir türdür. Örneğin, 200 veya "/cat". Değer, Koşullu ifadelerle desen eşleştirme bölümünde açıklandığı gibi, desen eşleştirme için yıldız işareti ve diğer karakterler gibi joker karakterler içerebilir.
1. Örnek
Aşağıdaki örnekte, request akış değişkeninin verb
özelliğinin "GET" olup olmadığı kontrol edilir:
<!-- 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 örnekte "Log-Request-OK" politikası yürütülü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 uygulanır.
Özellikler
<Condition> öğesinin özelliği yoktur.
Alt öğeler
<Condition> öğesinin alt öğesi yoktur.
<Description>
Akışı, kullanıcıların okuyabileceği şekilde açıklar. Bu öğeyi, akışla ilgili bilgileri kendinize veya diğer geliştiricilere sağlamak için kullanın. Açıklama harici olarak görünür değildir.
| 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, bir 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 yoktur.
Alt öğeler
<Description> öğesinin alt öğesi yoktur.
<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> üzerinde bir <Condition> belirtebilirsiniz. Bu durumda Edge, akıştaki adımları yalnızca koşul doğru olarak değerlendirilirse yürütür. Aksi takdirde Edge, akışın tamamını atlar.
Bir <Flows> öğesi, her biri kendi koşuluna ve adımlarına sahip birden fazla <Flow> öğesi içerebilir. Birden fazla <Flow> öğesi olduğunda Edge yalnızca koşul içermeyen veya koşulun doğru olarak değerlendirildiği ilk öğeyi yürütür.
Diğer koşullu akışların hiçbiri çalışmıyorsa her zaman yürütülen bir varsayılan akış tanımlayabilirsiniz. API proxy'nizin nasıl yapılandırıldığına bağlı olarak bu, kötü amaçlı saldırılara karşı korunmada faydalı 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şuluna sahip birden fazla adımdan oluşan 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 olan ilk akışı yürütür.
Özellikler
Aşağıdaki tabloda <Flow> öğesinin özellikleri açıklanmaktadır:
| Özellik | Tür | Açıklama |
|---|---|---|
name |
Dize | (Zorunlu) Akış için benzersiz bir kimlik. Örneğin, "My-Conditional-Flow-1". Ad boşluk veya özel karakterler içeremez. |
Alt öğeler
Aşağıdaki tabloda <Flow> öğesinin alt öğeleri açıklanmaktadır:
| Alt öğe | Tür | Açıklama |
|---|---|---|
<Condition> |
Dize | Çalışma zamanında işlenen koşullu bir 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örünür değildir. |
<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 fazla <Flow> öğesi varsa yalnızca bir <Flow> yürütülür. Bu, <Condition> içermeyen veya koşulu doğru olan ilk akış olur.
Diğer akışların hiçbiri çalışmıyorsa her zaman yürütülen bir varsayılan akış tanımlayabilirsiniz. API proxy'nizin nasıl yapılandırıldığına bağlı olarak bu, kötü amaçlı saldırılara karşı korunmada faydalı 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 topladığı yol son ekine göre bu politikalardan birini yürütür. Yol son eki koşullardan hiçbiriyle eşleşmezse Edge bu akışı yürütmez.
2. Örnek
Aşağıdaki örnekte, <Flows> içinde birden fazla <Flow> öğesi gösterilmektedir. Bu öğelerin her birinin kendi <Condition> öğesi vardır:
<!-- 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 segmentteki yalnızca ilk akışı yürütür. Bundan sonra Edge, segmentteki 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 segmentteki yalnızca ilk akışı yürütür. Koşullu akışlar yürütülmezse bu örnekteki üçüncü akış (koşulsuz) yürütülür.
Varsayılan akış, kötü amaçlı saldırılara karşı korunmada yararlı bir araç olabilir.
Özellikler
<Flows> öğesinin özelliği yoktur.
Alt öğeler
<Flows> öğesi aşağıdaki alt öğelere sahiptir:
| Alt öğe | Tür | Açıklama |
|---|---|---|
<Flow> |
Karmaşık nesne | Koşullu akışta olası bir adım grubunu tanımlayan akış. |
<Name>
Bir <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ıyla 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 yoktur.
Alt öğeler
<Name> öğesinin alt öğesi yoktur.
<PostFlow>
İstek ve yanıtın PostFlow'unda gerçekleştirilecek 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ın tanımlandığı 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 kimliği (uç nokta içinde benzersiz). Örneğin, "My-PostFlow-1". Değer boşluk veya başka özel karakterler içeremez. |
Alt öğeler
Aşağıdaki tabloda <PostFlow> öğesinin 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 bir yanıt döndürüldükten sonra yürütülen politikaları tanımlar. Bu politikalar genellikle yanıtla ilgili mesajları 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> öğesinin 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, tanımlanmış bir istek ve yanıt akışına sahip 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> öğesinin 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 yoktur.
Alt öğeler
Aşağıdaki tabloda <Request> öğesinin 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 segmentinde 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 yoktur.
Alt öğeler
Aşağıdaki tabloda <Response> öğesinin 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 segmentinde 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> |
<Flow> içinde birden fazla adım tanımlanabilir ve adımlar, akışın XML'sinde tanımlandıkları sırayla yürütülür.
Koşulsuz adımlar her zaman yürütülür. Koşullu adımlar yalnızca koşul doğru olarak değerlendirilirse yürütülür. Koşul yanlış olarak değerlendirilirse Edge 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>
<Step> başına 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şullu 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şulsuz adım, istek segmenti sırasında her zaman yürütülür. Koşullu adım yalnızca yanıt segmenti sırasında istek bir "GET" olduğunda yürütülür.
2. Örnek
Aşağıdaki örnekte tek bir segmentte birden fazla 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şulsuz adımlar her zaman yürütülür.
Özellikler
<Step> öğesinin özelliği yoktur.
Alt öğeler
Aşağıdaki tabloda <Step> öğesinin 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 adımı yürütür. İfade yanlış olarak değerlendirilirse Edge adımı atlar. |
<Name> |
Dize | Mevcut akışta yürütülecek politikanın kimliğini belirtir. |