Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Ne?
AttributionMessage politikası, API proxy Akışı sırasında yeni istek ve yanıt mesajlarını değiştirir veya oluşturur. Politika, bu iletiler üzerinde aşağıdaki işlemleri gerçekleştirmenize olanak tanır:
- Bir iletiye yeni form parametreleri, üstbilgiler veya sorgu parametreleri ekleme
- Mevcut özellikleri bir mesajdan diğerine kopyalama
- Üstbilgileri, sorgu parametrelerini, form parametrelerini ve/veya iletiyi kaldırma mesajdaki yük
- Bir mesajdaki mevcut özelliklerin değerini ayarlayın
Ataması politikasını kullanarak genellikle yanıt verebilmeniz için kritik önem taşır. Ancak, özel bir ve bunu, açıklandığı şekilde alternatif bir hedefe iletebilir. Özel istek mesajları oluşturun.
assignMessage politikası, akış değişkenlerini aşağıdaki alt öğe ile oluşturabilir veya değiştirebilir: öğeler:
<AssignMessage>
öğe
Ataması politikası tanımlar.
Varsayılan Değer | Aşağıdaki Varsayılan Politika sekmesine bakın |
Zorunlu mu? | Zorunlu |
Tür | Karmaşık nesne |
Üst Öğe | Yok |
Alt Öğeler |
<Add> <AssignTo> <AssignVariable> <Copy> <DisplayName> <IgnoreUnresolvedVariables> <Remove> <Set> |
<AssignMessage>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage>
öğesi şu söz dizimini kullanır:
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <!-- All AssignMessage child elements are optional --> <Add> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> <Headers> <Header name="header_name">header_value</Header> ... </Headers> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> </Add> <AssignTo createNew="[true|false]" transport="http" type="[request|response]">destination_variable_name</AssignTo> <AssignVariable> <Name>variable_name</Name> <Ref>source_variable</Ref> <Template>message_template</Template> or <Template ref='template_variable'></Template> <Value>variable_value</Value> </AssignVariable> <Copy source="[request|response]"> <!-- Can also be an empty array (<FormParams/>) --> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> <!-- Can also be an empty array (<Headers/>) --> <Headers> <Header name="header_name">header_value</Header> ... </Headers> <Path>[false|true]</Path> <Payload>[false|true]</Payload> <!-- Can also be an empty array (<QueryParams/>) --> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> <ReasonPhrase>[false|true]</ReasonPhrase> <StatusCode>[false|true]</StatusCode> <Verb>[false|true]</Verb> <Version>[false|true]</Version> </Copy> <DisplayName>policy_display_name</DisplayName> <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables> <Remove> <!-- Can also be an empty array (<FormParams/>) --> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> <!-- Can also be an empty array (<Headers/>) --> <Headers> <Header name="header_name">header_value</Header> ... </Headers> <Payload>[false|true]</Payload> <!-- Can also be an empty array (<QueryParams/>) --> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> </Remove> <Set> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> <Headers> <Header name="header_name">header_value</Header> ... </Headers> <Path>path</Path> <Payload contentType="content_type" variablePrefix="prefix" variableSuffix="suffix">new_payload</Payload> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> <ReasonPhrase>reason_for_error or {variable}</ReasonPhrase> <StatusCode>HTTP_status_code or {variable}</StatusCode> <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb> <Version>[1.0|1.1|{variable}]</Verb> </Set> </AssignMessage>
Varsayılan Politika
Aşağıdaki örnekte,assignMessage politikası eklediğinizde kullanılan varsayılan ayarlar gösterilmektedir olarak ayarlayın:
<AssignMessage continueOnError="false" enabled="true" name="assign-message-default"> <DisplayName>Assign Message-1</DisplayName> <Properties/> <Copy source="request"> <Headers/> <QueryParams/> <FormParams/> <Payload/> <Verb/> <StatusCode/> <ReasonPhrase/> <Path/> </Copy> <Remove> <Headers> <Header name="h1"/> </Headers> <QueryParams> <QueryParam name="q1"/> </QueryParams> <FormParams> <FormParam name="f1"/> </FormParams> <Payload/> </Remove> <Add> <Headers/> <QueryParams/> <FormParams/> </Add> <Set> <Headers/> <QueryParams/> <FormParams/> <!-- <Verb>GET</Verb> --> <Path/> </Set> <AssignVariable> <Name>name</Name> <Value/> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Edge kullanıcı arayüzüne yeni bir QueryMessage politikası eklediğinizde şablon,
yapmanızı sağlayan sorular. Genellikle bu politikayla gerçekleştirmek istediğiniz işlemleri siz seçersiniz
ve alt öğelerin geri kalanını kaldırın. Örneğin, bir kopyalama işlemi gerçekleştirmek istiyorsanız
<Copy>
öğesini seçin ve <Add>
, <Remove>
ve diğer alt öğeleri şuradan kaldırın:
politikayı daha okunaklı hale getirmek için.
Bu öğe, tüm politikalarda ortak olan aşağıdaki özelliklere sahiptir:
Özellik | Varsayılan | Zorunlu mu? | Açıklama |
---|---|---|---|
name |
Yok | Zorunlu |
Politikanın dahili adı. İsteğe bağlı olarak, politikayı yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı, doğal bir dille etiketlemek için |
continueOnError |
yanlış | İsteğe bağlı | Politika başarısız olduğunda hata döndürmek için "false" değerine ayarlayın. Bu, çoğu politika için beklenen bir durumdur. Bir politika başarısız olsa bile akış yürütmenin devam etmesi için değeri "true" olarak ayarlayın. |
enabled |
true | İsteğe bağlı | Politikayı uygulamak için "true" (doğru) değerine ayarlayın. Politikayı "kapalı" hale getirmek için "false" değerine ayarlayın. Politika, bir akışa bağlı kalsa bile zorunlu kılınmaz. |
async |
yanlış | Kullanımdan kaldırıldı | Bu özellik kullanımdan kaldırıldı. |
Aşağıdaki tabloda, öğenin alt öğeleri için genel bir açıklama sunulmaktadır
<AssignMessage>
:
Alt Öğe | Zorunlu mu? | Açıklama |
---|---|---|
Genel işlemler | ||
<Add> |
İsteğe bağlı |
<AssignTo> öğesi.
|
<Copy> |
İsteğe bağlı | source tarafından belirtilen mesajdaki bilgileri kopyalar
özelliğini <AssignTo> öğesi tarafından belirtilen mesaj nesnesine ekleyin. |
<Remove> |
İsteğe bağlı | Belirtilen öğeleri
<AssignTo> öğesi. |
<Set> |
İsteğe bağlı | İstek veya yanıttaki mevcut özelliklerin, aşağıdaki şekilde belirtilen değerlerini değiştirir:
<AssignTo> öğesi.
|
Diğer alt öğeler | ||
<AssignTo> |
İsteğe bağlı | Ataması politikasının hangi mesaj üzerinde çalışacağını belirtir. Bu, tüm standart istek veya yanıt olabileceği gibi yeni, özel bir mesaj da olabilir. |
<AssignVariable> |
İsteğe bağlı | Bir akış değişkenine değer atar. Değişken mevcut değilse
<AssignVariable> oluşturur. |
<IgnoreUnresolvedVariables> |
İsteğe bağlı | Çözümlenmemiş bir değişkenle karşılaşıldığında işlemenin durup durmayacağını belirler. |
Bu alt öğelerin her biri sonraki bölümlerde açıklanmıştır.
Örnekler
Aşağıdaki örneklerde,assignMessage politikasını hangi şekillerde kullanabileceğiniz gösterilmektedir politika:
1: Üstbilgi ekleme
Aşağıdaki örnek, isteğe
<Add>
öğesi:
<AssignMessage continueOnError="false" enabled="true" name="add-headers-1"> <Add> <Headers> <Header name="user-agent">{request.user.agent}</Header> </Headers> </Add> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
2: Yükü kaldırın
Aşağıdaki örnek, <Remove>
içeren yanıttaki yükü siler
öğe:
<AssignMessage continueOnError="false" enabled="true" name="remove-1"> <DisplayName>remove-1</DisplayName> <Remove> <Payload>true</Payload> </Remove> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>
3: Yanıtı değiştirin
Aşağıdaki örnek, başlık ekleyerek mevcut bir yanıt nesnesini değiştirir:
<AssignMessage name="modify-response"> <Set> <Headers> <Header name="Cache-Hit">{lookupcache.LookupCache-1.cachehit}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <AssignTo createNew="false" type="response"></AssignTo> </AssignMessage>
Bu örnek yeni bir mesaj oluşturmaz. Bunun yerine, HTTP üstbilgisi ekleyerek mevcut yanıt mesajını gönderin.
Çünkü bu örnekte <AssignTo>
öğesinde bir değişken adı atlanmaktadır ve
type
ise bu politika, hedef tarafından döndürülen yanıt nesnesini değiştirir
sunucu.
Bu politika tarafından yanıt mesajına eklenen HTTP üst bilgisi bir değişkenden türetiliyor LookupCache politikası tarafından doldurulur. Bu nedenle, bu İleti Ataması politikası, sonuçların doğru olup olmadığını belirten bir HTTP üstbilgisi içerir. otomatik olarak devre dışı bırakılır. Yanıtta başlıkları ayarlamak hata ayıklama açısından faydalı olabilir ve sorun giderme adımlarına göz atın.
4: Dinamik içeriği ayarlayın
Yanıt yüküne dinamik içeriği yerleştirmek ve mesaj iste.
Edge akış değişkenlerini bir XML yüküne yerleştirmek için belirtilen değişkeni kıvrık içine sarın
kaşlı ayraçlar şöyle: {prefix.name}
.
Aşağıdaki örnekte user-agent
HTTP başlığı akış değişkeninin değeri yerleştirilmiştir
User-agent
adlı bir XML öğesinde:
<AssignMessage name="set-dynamic-content"> <AssignTo createNew="false" type="response"></AssignTo> <Set> <Payload contentType="text/xml"> <User-agent>{request.header.user-agent}</User-agent> </Payload> </Set> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </AssignMessage>
JSON yükleri için variablePrefix
ve
Aşağıda gösterildiği gibi ayırıcı karakterlere sahip variableSuffix
özellikleri
örnek:
<AssignMessage name="set-payload"> <Payload contentType="application/json" variablePrefix="@" variableSuffix="#"> { "user-agent": "@request.header.user-agent#" } </Payload> </AssignMessage>
Akış değişkenlerinin tam listesi için Akış değişkenleri referansı bölümüne bakın.
16.08.17 bulut sürümünden itibaren değişken eklemek için süslü ayraçları da kullanabilirsiniz.
5: Sorgu parametresini kaldırma
Aşağıdaki örnek, apikey
sorgu parametresini istekten kaldırır:
<AssignMessage name="remove-query-param"> <Remove> <QueryParams> <QueryParam name="apikey"/> </QueryParams> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
En iyi uygulama, apikey
sorgu parametresini istekten çıkarmaktır
iletisiyle karşılaşırsınız. Bu yöntemin kapsamdaki
hassas anahtar bilgilerinin arka uç hedefine aktarılmasını engeller.
6: Değişkenleri ayarlayın/alın
Aşağıdaki örnekte üç İleti Ata politikası kullanılmaktadır:
- İstekte statik değerlerle üç akış değişkeni oluşturur
- Akış değişkenlerini, istek akışındaki ikinci bir politikada dinamik olarak alır
- Bunları yanıtın yüküne dahil eder
<!-- Policy #1: Set variables in the request --> <AssignMessage continueOnError="false" enabled="true" name="set-variables"> <!-- Create a variable named myAppSecret --> <AssignVariable> <Name>myAppSecret</Name> <Value>42</Value> </AssignVariable> <!-- Create a variable named config.environment --> <AssignVariable> <Name>config.environment</Name> <Value>test</Value> </AssignVariable> <!-- Create a variable named config.protocol --> <AssignVariable> <Name>config.protocol</Name> <Value>gopher</Value> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
İlk politikada <AssignVariable>
öğesi üç öğe oluşturur ve ayarlar
değişkenlerinin değeri dahil edilir. Her <Name>
öğesi
<Value>
ise değeri belirtir.
İkinci politika, değerleri okumak için <AssignVariable>
öğesini kullanır ve üç tane oluşturur
yeni değişkenler:
<!-- Policy #2: Get variables from the request --> <AssignMessage continueOnError="false" enabled="true" name="get-variables"> <AssignTo createNew="false" transport="http" type="request"/> <!-- Get the value of myAppSecret and create a new variable, secret --> <AssignVariable> <Name>secret</Name> <Ref>myAppSecret</Ref> <Value>0</Value> </AssignVariable> <!-- Get the value of config.environment and create a new variable, environment --> <AssignVariable> <Name>environment</Name> <Ref>config.environment</Ref> <Value>default</Value> </AssignVariable> <!-- Get the value of config.protocol and create a new variable, protocol --> <AssignVariable> <Name>protocol</Name> <Ref>config.protocol</Ref> <Value>default</Value> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </AssignMessage>
İkinci politikada <Ref>
öğesi, kaynak değişkene referans verir.
ve <Name>
öğeleri yeni değişkenlerin adlarını belirtir. Değişken
<Ref>
öğesi tarafından referansa ulaşılamıyorsa değeri kullanabilirsiniz
<Value>
öğesi ile belirtilir.
Bu politika grubunu denemek için:
- 1. ve 2. politikaları istek akışına ekleyin. 1. politikayı politikanın önüne eklediğinizden emin olun 2.
- Üçüncü politikayı yanıt akışına ekleyin.
- Üçüncü politika, değişkenleri yanıta eklemek için
<Set>
öğesini kullanır. İlgili içeriği oluşturmak için kullanılan aşağıdaki örnek, Edge'in istemciye döndürdüğü yanıtta bir XML yükü oluşturur:<!-- Policy #3: Add variables to the response --> <AssignMessage continueOnError="false" enabled="true" name="put-em-in-the-payload"> <DisplayName>put-em-in-the-payload</DisplayName> <Set> <Payload contentType="application/xml"> <wrapper> <secret>{secret}</secret> <config> <environment>{environment}</environment> <protocol>{protocol}</protocol> </config> </wrapper> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>
.<Set>
'de akış değişkenlerine erişmek için kullanılan söz diziminin, akış değişkenlerini kıvrık ayraçlar.<Payload>
öğesinincontentType
özelliğini "uygulama/xml". - API proxy'nize istek gönderme; örneğin:
curl -vL https://ahamilton-eval-test.apigee.net/myproxy
.İsteğe bağlı olarak, sonuçları
xmllint
gibi bir yardımcı program ile bağlayabilirsiniz. Böylece, XML güzel biçimlendirilmiş bir yapıda görüntülenir:curl -vL https://ahamilton-eval-test.apigee.net/myproxy | xmllint --format -
Yanıt gövdesi aşağıdaki gibi görünmelidir:
<wrapper> <secret>42</secret> <config> <environment>test</environment> <protocol>gopher</protocol> </config> </wrapper>
7: Hizmet Çağrısı yanıt üstbilgilerini alma
Aşağıdaki örnekte, API proxy isteğinde bir ServiceÇağrı politikasının bulunduğunu varsayalım.
ve açıklama metni yanıtı aynı ada sahip birden fazla başlık içeriyorsa
(Set-Cookie
). Hizmet Çağrısı'nın yanıt değişkeninin varsayılan olduğu varsayıldığında
calloutResponse
, aşağıdaki politika ikinci Set-Cookie
başlık değeri.
<AssignMessage continueOnError="false" enabled="true" name="get-header"> <Set> <Payload contentType="application/json"> {"Cookies from Service Callout":" {calloutResponse.header.Set-Cookie.2}"} </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Tüm üst bilgi değerlerini listelemek için aşağıdaki değişkeni kullanın:
{calloutResponse.header.Set-Cookie.values}
Bu referanstaki her alt öğenin ek örnekleri vardır. Daha fazla örnek için bkz. assignMessage örneği bulabilirsiniz.
Alt öğe referansı
Bu bölümde, <AssignMessage>
alt öğeleri açıklanmaktadır.
<Add>
İstek veya yanıta, <AssignTo>
ile belirtilen bilgi ekler
öğesine dokunun.
<Add>
öğesi, iletiye orijinal öğede bulunmayan yeni özellikler ekler.
mesajını alırsınız. Mevcut özelliklerin değerlerini değiştirmek için <Set>
kullanın
öğesine dokunun.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Karmaşık tür |
Üst Öğe |
<AssignMessage>
|
Alt Öğeler |
<FormParams> <Headers> <QueryParams> |
<Add>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Add> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> <Headers> <Header name="header_name">header_value</Header> ... </Headers> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> </Add> </AssignMessage>
1. Örnek
Aşağıdaki örnekte,<FormParams>
sorgu dizesi parametresini oluşturmak ve bunları
hedef uç nokta isteği:
<AssignMessage continueOnError="false" enabled="true" name="add-formparams-3"> <Add> <FormParams> <FormParam name="name">{request.queryparam.name}</FormParam> <FormParam name="zip">{request.queryparam.zipCode}</FormParam> <FormParam name="lang">{request.queryparam.lang}</FormParam> </FormParams> </Add> <AssignTo transport="http" type="request"/> </AssignMessage>
2. Örnek
Aşağıdaki örnekte<Headers>
Hedef uç nokta isteğine User-Agent
üstbilgisi:
<AssignMessage continueOnError="false" enabled="true" name="add-headers-1"> <Add> <Headers> <Header name="user-agent">{request.user.agent}</Header> </Headers> </Add> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
3. Örnek
Aşağıdaki örnekte, tek bir sorgu eklemek için <QueryParams>
öğesi kullanılmaktadır
parametresini isteğe statik bir değerle ekler:
<AssignMessage continueOnError="false" enabled="true" name="add-queryparams-1"> <Add> <QueryParams> <QueryParam name="myParam">42</QueryParam> </QueryParams> </Add> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Bu örnekte, istek ön akışında <Add>
kullanılmaktadır. Sonuçlara bir araçta bakarsanız
örneğin, İzleme aracı, "http://httpbin.org/get" isteği şu olur:
"http://httpbin.org/get?myParam=42".
<Add>
alt öğeleri,
mesaj şablonu oluşturma.
<FormParams>
(<Add>
hesabının altında)
İstek mesajına yeni form parametreleri ekler. Bu öğenin yanıtlar üzerinde etkisi yok mesajını alırsınız.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <FormParam> öğeleri dizisi |
Üst Öğe |
<Add>
|
Alt Öğeler |
<FormParam> |
<FormParams>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Add> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> <AssignTo createNew="[true|false]" transport="http" type="[request|response]">destination_variable_name</AssignTo> </Add> </AssignMessage>
1. Örnek
Aşağıdaki örnekte, istek:
<AssignMessage continueOnError="false" enabled="true" name="add-formparams-1"> <Add> <FormParams> <FormParam name="answer">42</FormParam> </FormParams> </Add> <AssignTo transport="http" type="request"></AssignTo> </AssignMessage>
2. Örnek
Aşağıdaki örnek, name
sorgu dizesi parametresinin değerini alır ve
bunu isteğe bir form parametresi olarak ekler:
<AssignMessage continueOnError="false" enabled="true" name="add-formparams-2"> <Add> <FormParam name="name">{request.queryparam.name}</FormParam> </Add> </AssignMessage>
Bu örneğin <AssignTo>
ile bir hedef belirtmediğini unutmayın. Bu politika,
parametresini kullanabilirsiniz.
3. Örnek
Aşağıdaki örnekte isteğe birden çok form parametresi eklenmiştir:
<AssignMessage continueOnError="false" enabled="true" name="add-formparams-3"> <Add> <FormParams> <FormParam name="name">{request.queryparam.name}</FormParam> <FormParam name="zip">{request.queryparam.zipCode}</FormParam> <FormParam name="lang">{request.queryparam.lang}</FormParam> </FormParams> </Add> <AssignTo transport="http" type="request"/> </AssignMessage>
Bu örnek, kaynak istekten sorgu dizesi parametrelerini alır ve bunları ekler URL'yi, hedef uç noktaya gönderilen isteğe form parametreleri olarak ekler.
Akışa bakmak için İzleme aracını kullanabilirsiniz. İsteğin gövdesinin URL kodlamalı form verilerini içerir ve bu veriler başlangıçta sorgu dizesi olarak parametre:
%7Busername%7D=nick&%7Bzip_code%7D=90210&%7Bdefault_language%7D=en
<FormParams>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- HTTP fiili: POST
- Mesaj türü: İstek
- Aşağıdakilerden biri (veya her ikisi):
- Form verisi: Bir değere veya "" değerine ayarlayın (boş dize). Örneğin,
curl
, isteğinize-d ""
ekleyin. Content-Length
üstbilgisi: 0 olarak ayarlanır ( orijinal talep; aksi takdirde bayt cinsinden geçerli uzunluk) gösterilir. Örneğin,curl
, isteğinize-H "Content-Length: 0"
ekleyin.
- Form verisi: Bir değere veya "" değerine ayarlayın (boş dize). Örneğin,
Örneğin:
curl -vL -X POST -d "" -H "Content-Type: application/x-www-form-urlencoded" https://ahamilton-eval-test.apigee.net/am-test
<FormParams>
eklediğinizde Edge, isteğin Content-Type
başlığını şuna ayarlar:
"application/x-www-form-urlencoded" ve mesajı hedef hizmete göndermeden önce gönderilir.
<Headers>
(<Add>
hesabının altında)
Belirtilen istek veya yanıta,
<AssignTo>
öğesi.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <Header> öğeleri dizisi |
Üst Öğe |
<Add>
|
Alt Öğeler |
<Header> |
<Headers>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Add> <Headers> <Header name="header_name">header_value</Header> ... </Headers> </Add> </AssignMessage>
1. Örnek
Aşağıdaki örnekte, istek mesajına user-agent
başlığı eklenmiştir ve
request.user.agent
akış değişkeninin değerini bu başlığa atar.
<AssignMessage continueOnError="false" enabled="true" name="add-headers-1"> <Add> <Headers> <Header name="user-agent">{request.user.agent}</Header> </Headers> </Add> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
<QueryParams>
(<Add>
hesabının altında)
İsteğe yeni sorgu parametreleri ekler. Bu öğenin yanıtlar üzerinde etkisi yoktur.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <QueryParam> öğeleri dizisi |
Üst Öğe |
<Add>
|
Alt Öğeler |
<QueryParam> |
<QueryParams>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Add> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> </Add> </AssignMessage>
1. Örnek
Aşağıdaki örnekte "myParam" sorgu parametresi eklenmiştir isteğe bağlı olarak ekler ve "42" ekleyin:
<AssignMessage continueOnError="false" enabled="true" name="add-queryparams-1"> <Add> <QueryParams> <QueryParam name="myParam">42</QueryParam> </QueryParams> </Add> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
<QueryParams>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- HTTP fiili: GET
- Mesaj türü: İstek
Buna ek olarak, sorgu parametrelerini yalnızca <AssignTo>
öğesi
type
özelliği bir istek mesajıdır. Bunları yanıtta ayarlamanın herhangi bir etkisi yoktur.
Politikanızda boş bir sorgu parametreleri dizisi tanımlarsanız
(<Add><QueryParams/></Add>
) durumunda, politika herhangi bir sorgu eklemez
parametreleridir. Bu, <QueryParams>
öğesinin hariç tutulmasıyla aynıdır.
<AssignTo>
Ataması politikasının hangi nesne üzerinde çalıştığını belirler. Seçenekler şunlardır:
- İstek mesajı: API proxy'si tarafından alınan
request
- Yanıt mesajı: Hedef sunucudan döndürülen
response
- Özel mesaj: Özel bir istek veya yanıt nesnesi
Bazı durumlarda QueryMessage politikasının etki ettiği nesneyi değiştiremeyeceğinizi unutmayın.
Örneğin, sorgu parametreleri eklemek veya bunları değiştirmek için <Add>
ya da <Set>
kullanılamaz
(<QueryParams>
) veya form parametreleri (<FormParams>
) oluşturun. Yalnızca
istekteki sorgu parametrelerini ve form parametrelerini değiştirme.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize |
Üst Öğe |
<AssignMessage>
|
Alt Öğeler | Yok |
<AssignTo>
özelliğini belirtmezseniz politika varsayılan istek veya yanıta göre uygulanır.
(politikanın nerede geçerli olduğuna bağlı olarak) Politika, istek akışında uygulanırsa
istek mesajını etkiler. Politika yanıt akışında uygulanırsa yanıtı etkiler
varsayılan olarak.
<AssignTo>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <AssignTo createNew="[true|false]" transport="http" type="[request|response]">destination_variable_name</AssignTo> </AssignMessage>
1. Örnek
Aşağıdaki örnekte, hedefin hedef uç nokta:
<AssignMessage name="assignto-1"> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
createNew
değerini "false" olarak ayarlayarak (varsayılan) sağlar, bu örnek bir
yeni bir istek. Bu politikadaki tüm işlemler orijinal isteği etkiler.
2. Örnek
Aşağıdaki örnekte yeni bir istek nesnesi oluşturulur:
<AssignMessage name="assignto-2"> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
Yeni bir istek veya yanıt nesnesi oluşturduğunuzda QueryMessage politikasının diğer öğeleri
politikası (ör. <Add>
, <Set>
ve <Set>
) bu yeni
istek nesnesini oluşturur.
Yeni istek nesnesine akışın ilerleyen bölümlerinde diğer politikalarda erişebilir veya yeni istek nesnesini ServiceÇağrı politikası ile harici bir hizmete istek nesnesi gönderme.
3. Örnek
Aşağıdaki örnekte "MyRequestObject" adlı yeni bir istek nesnesi oluşturulur:
<AssignMessage name="assignto-2"> <AssignTo createNew="true" transport="http" type="request">MyRequestObject</AssignTo> </AssignMessage>
Yeni bir istek veya yanıt nesnesi oluşturduğunuzda QueryMessage politikasının diğer öğeleri
politikası (ör. <Add>
, <Set>
ve <Set>
) bu yeni
istek nesnesini oluşturur.
Yeni istek nesnesine akışın ilerleyen bölümlerinde diğer politikalarda erişebilir veya yeni istek nesnesini ServiceÇağrı politikası ile harici bir hizmete istek nesnesi gönderme.
Aşağıdaki tabloda <AssignTo>
özellikleri açıklanmaktadır:
Özellik | Açıklama | Zorunlu mu? | Tür |
---|---|---|---|
createNew |
Bu politikanın değer atarken yeni bir mesaj oluşturup oluşturmayacağını belirler. Politika "true" (doğru) değerine ayarlanırsa politika şu türde yeni bir değişken oluşturur:
Politika, "false" (yanlış) değerine ayarlandığında şu iki yöntemden biriyle yanıt verir:
|
İsteğe bağlı | Boole |
transport |
İstek veya yanıt mesajı türü için aktarım türünü belirtir. Varsayılan değer "http" şeklindedir. (desteklenen tek değer). |
İsteğe bağlı | Dize |
type |
createNew "true" (doğru) olduğunda yeni mesajın türünü belirtir. Geçerli
değerler "request"dir veya "yanıt".
Varsayılan değer "request"dir. Bu özelliği hariç tutarsanız Edge bu politikanın akışın neresinde yürütüldüğüne bağlı olarak bir istek veya yanıt. |
İsteğe bağlı | Dize |
<AssignVariable>
Bir hedef akış değişkenine (ör. değeri
AttributionMessage politikası). Akış değişkeni mevcut değilse <AssignVariable>
,
somut olarak ortaya koyar.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Karmaşık tür |
Üst Öğe |
<AssignMessage>
|
Alt Öğeler |
<Name> (zorunlu)<Ref> <Template> <Value> |
Hedef akış değişkenine atadığınız değer aşağıdakilerden biri olabilir:
- Değişmez dize: Değişmez değer belirtmek için
<Value>
alt öğesini kullanın dize değerini girin. - Akış değişkeni: Bir
<Ref>
için mevcut akış değişkenini seçtiğinizden emin olun. Akışın tam listesi için değişkenlerine ilişkin referanslar için Akış değişkenleri referansı bölümüne bakın. - İleti şablonu: Etiket belirtmek için
<Template>
alt öğesini kullanın ileti şablonunu hedef akış değişkeni.
<AssignVariable>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <AssignVariable> <Name>variable_name</Name> <Ref>source_variable</Ref> <Template>message_template</Template> or <Template ref='template_variable'></Template> <Value>variable_value</Value> </AssignVariable> </AssignMessage>
Kaynak değişkeni belirtmek için <Ref>
öğesini kullanın. Öğe
<Ref>
tarafından referansta bulunulan değişkene erişilemiyor. Edge,
<Value>
öğesi tarafından belirtilir. Hedef kitlenizi
<Template>
için diğer alt öğelere göre önceliklidir.
1. Örnek
Aşağıdaki örnekte myvar
adlı yeni değişkenin değeri sabit değer olarak ayarlanmaktadır.
"42" değeri:
<AssignMessage name="assignvariable-1"> <AssignVariable> <Name>myvar</Name> <Value>42</Value> </AssignVariable> </AssignMessage>
2. Örnek
Aşağıdaki örnekte, akış değişkeninin değeri
myvar
hedef akış değişkenine request.header.user-agent
ve hedef akış değişkenine country
sorgu parametresinin değeri
Country
:
<AssignMessage name="assignvariable-2"> <AssignVariable> <Name>myvar</Name> <Ref>request.header.user-agent</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> <AssignVariable> <Name>Country</Name> <Ref>request.queryparam.country</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> </AssignMessage>
İki atama da başarısız olursa Edge bunun yerine "ErrorOnCopy" değerini atar - hedef akış değişkeninin değeridir.
myvar
veya Country
akış değişkenleri mevcut değilse
<AssignVariable>
bunları oluşturur.
3. Örnek
Aşağıdaki örnekte <Template>
kullanılmaktadır
iki bağlam değişkenini birleştiren alt öğe
bir dize (kısa çizgi) ekler:
<AssignMessage name='template-1'> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <AssignVariable> <Name>my_destination_variable</Name> <Value>BADDBEEF</Value> <Template>{system.uuid}-{messageid}</Template> </AssignVariable> </AssignMessage>
<AssignVariable>
için yaygın bir kullanım biçimi, bir sorgu parametresi, başlık veya
istekle birlikte iletilebilecek diğer değeri tanımlar. Bunu, hem
<Ref>
ve <Value>
alt öğeleri. Daha fazla
<Ref>
ile ilgili örneklere bakın.
<Name>
(<AssignVariable>
hesabının altında)
Hedef akış değişkeninin (ör. değeri
özel atama politikası). <AssignVariable>
içinde adlı değişken mevcut değilse
politikası bu ada sahip bir etiket oluşturur.
Varsayılan Değer | Yok |
Zorunlu mu? | Zorunlu |
Tür | Dize |
Üst Öğe |
<AssignVariable>
|
Alt Öğeler | Yok |
<Name>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <AssignVariable> <Name>variable_name</Name> </AssignVariable> </AssignMessage>
1. Örnek
Aşağıdaki örnek, hedef değişkenini myvar
olarak belirtir ve
değer "42" olsun:
<AssignMessage name="assignvariable-1"> <AssignVariable> <Name>myvar</Name> <Value>42</Value> </AssignVariable> </AssignMessage>
myvar
yoksa <AssignVariable>
tarafından oluşturulur.
<Ref>
(<AssignVariable>
hesabının altında)
Atamanın kaynağını akış değişkeni olarak belirtir. Akış değişkeni önceden tanımlanmış akış değişkenleri (Akış değişkenleri referansında listelenen şekliyle) veya özel akış değişkeni öğrenebilirsiniz.
<Ref>
değeri her zaman bir akış değişkeni olarak yorumlanır; şunu yapamaz:
değer. Değişmez dize değeri atamak için <Value>
öğesini kullanın
.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize |
Üst Öğe |
<AssignVariable>
|
Alt Öğeler | Yok |
<Ref>
ile bir akış değişkeni belirtirken
"{}" şeklinde ayraçlar normal koşullarda akış değişkenine Örneğin,
yeni değişkeninizin değerini client.host
akışının değerine ayarlayın
değişken:
Do this (no brackets): <Ref>client.host</Ref> Do NOT do this (brackets): <Ref>{client.host}</Ref>
Hedef akış değişkeni için varsayılan bir değer tanımlamak üzere <Value>
değerini kullanın
<Ref>
ile birlikte. Akış değişkeni
<Ref>
mevcut değil, okunamıyor veya boşsa Edge bu değeri atar
değerini hedef akış değişkenine ekleyin.<Value>
<Ref>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <AssignVariable> <Name>variable_name</Name> <Ref>source_variable</Ref> </AssignVariable> </AssignMessage>
1. Örnek
Aşağıdaki örnekte, akış değişkeninin değeri
myvar
hedef akış değişkenine request.header.user-agent
ve
Country
değişkenine country
sorgu parametresinin değeri:
<AssignMessage name="assignvariable-4"> <AssignVariable> <Name>myvar</Name> <Ref>request.header.user-agent</Ref> </AssignVariable> <AssignVariable> <Name>Country</Name> <Ref>request.queryparam.country</Ref> </AssignVariable> </AssignMessage>
Bu örnekte, Edge'in atama.
2. Örnek
Aşağıdaki örnekte request.header.user-agent
akış değişkeninin değeri atanır
değerini hedef akış değişkenine myvar
Country
değişkenine country
sorgu parametresi eklemek için:
<AssignMessage name="assignvariable-2"> <AssignVariable> <Name>myvar</Name> <Ref>request.header.user-agent</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> <AssignVariable> <Name>Country</Name> <Ref>request.queryparam.country</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> </AssignMessage>
Bu örnekte, request.header.user-agent
akış değişkeninin değerleri
veya Country
sorgu parametresi null, okunamaz veya bozuksa Edge atanır.
"ErrorOnCopy" değeri kullanabilirsiniz.
3. Örnek
<AssignVariable>
için yaygın bir kullanım alanı, sorgunun varsayılan değerini ayarlamaktır.
parametre, başlık veya istekle birlikte iletilebilecek başka bir değer bulunur. Örneğin,
isteğin "w" adlı tek bir sorgu parametresi aldığı bir hava durumu API proxy'si. Bu
parametresi, hava durumunu öğrenmek istediğiniz şehrin kimliğini içerir. İstek URL'sinde
şu formu kullanın:
http://myCO.com/v1/weather/forecastrss?w=city_ID
"w" için varsayılan bir değer tanımlamak üzere şuna benzer bir AtaMessage politikası oluşturun: takip etmek için:
<AssignMessage continueOnError="false" enabled="true" name="assignvariable-3"> <AssignTo createNew="false" transport="http" type="request"/> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignVariable> <Name>request.queryparam.w</Name> <Ref>request.queryparam.w</Ref> <Value>12797282</Value> </AssignVariable> </AssignMessage>
Bu örnekte <AssignVariable>
, request.queryparam.w
değerini alır
ve bunu kendisine atar. Akış değişkeni null ise, yani "w" sorgu parametresi (önceki değeri)
değeri atlanırsa bu örnekte,
<Value>
öğesi. Bu nedenle, bu API'ye istekte bulunabilirsiniz.
"w" harfini atlayan proxy sorgu parametresi:
http://myCO.com/v1/weather/forecastrss
...ve API proxy'sinin geçerli bir sonuç döndürmesini sağlayabilirsiniz.
<Value>
kullanımından farklı olarak, <Ref>
değeri bir olmalıdır
akış değişkeni, örneğin bir request
, response
veya
target
nesnesini tanımlayın. Değer, oluşturduğunuz bir özel akış değişkeni de olabilir.
<Ref>
değeri için mevcut olmayan bir akış değişkeni belirtirseniz
ve <IgnoreUnresolvedVariables>
değeri "true" olduğunda Edge bir hata gönderir.
<Template>
(<AssignVariable>
hesabının altında)
Bir mesaj şablonu. Mesaj şablonu, politika yürütüldüğünde değişken dizesi değişikliği yapmanıza olanak tanır ve düz dizeleri kıvrık içine alınmış değişken adlarıyla birleştirebilir ayraçlar. Ayrıca, mesaj şablonları destek (çıkış ve büyük/küçük harf dönüştürme gibi) işlevlerini kullanabilirsiniz.
Değişkenin değerinin mevcut olduğu bir akış değişkenini belirtmek için ref
özelliğini kullanın.
bir mesaj şablonudur. Örneğin, bir ileti şablonunu
özel özellik
ekleyebilirsiniz. Edge, API anahtarını doğruladıktan sonra geliştirici uygulamasını tanımladığında
veya güvenlik jetonu (ek politika ile) kullanılarak, <AssignVariable>
öğesi, uygulamanın Google Ads'e aktaran
olarak değiştirilir. Aşağıdaki örnekte,
şablonu, feed'deki message_template
adlı bir müşteri özelliğinde
Doğrulama için VerifyAPIKey politikasının kullanıldığı API çağrısı yapan geliştirici uygulaması
Uygulamanın API anahtarı:
<AssignVariable ref='verifyapikey.myVerifyAPIKeyPolicy.app.name.message_template'/>
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize |
Üst Öğe |
<AssignVariable>
|
Alt Öğeler | Yok |
<Template>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <AssignVariable> <Template>message_template</Template> or <Template ref='template_variable'></Template> </AssignVariable> </AssignMessage>
1. Örnek
Aşağıdaki örnekte iki bağlam değişkenini birleştirmek için mesaj şablonu söz dizimi kullanılmaktadır bir dize (kısa çizgi) ekler:
<AssignMessage name='template-1'> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <AssignVariable> <Name>my_destination_variable</Name> <Value>BADDBEEF</Value> <Template>{system.uuid}-{messageid}</Template> </AssignVariable> </AssignMessage>
2. Örnek
Aşağıdaki örnekte bir akış değişkeni belirtilmektedir; burada değişkenin değeri önceden tanımlanmış bir mesaj şablonudur. URL'ye önceden tanımlanmış bir şablon eklemek isterseniz bu seçeneği kullanın çalışma zamanı ayarlayabilirsiniz.
<AssignMessage name='template-2'> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <AssignVariable> <Name>my_destination_variable</Name> <Value>BADDBEEF</Value> <Template ref='my_template_variable'/> </AssignVariable> </AssignMessage>
3. Örnek
Aşağıdaki örnekte bir akış değişkeni ve metin değeri belirtilmektedir. Bu durumda,
başvurulan değişken boş değildir; bu değer şablon olarak kullanılır. Referans verilen
değer boş ise metin değeri (bu örnekte {system.uuid}-{messageid}
)
öğesi şablon olarak kullanılır. Bu kalıp, "geçersiz kılma" sağlamak için yararlıdır değer, burada:
Bazı durumlarda varsayılan şablonu (metin bölümü) farklı değerlerle değiştirmek isteyebilirsiniz
bu yöntemi kullanabilirsiniz. Örneğin, bir koşullu ifadenin
oluşturun ve başvurulan değişkeni bu değere ayarlayın:
<AssignMessage name='template-2'> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <AssignVariable> <Name>my_destination_variable</Name> <Value>BADDBEEF</Value> <Template ref='my_variable'>{system.uuid}-{messageid}</Template> </AssignVariable> </AssignMessage>
<Value>
(<AssignVariable>
hesabının altında)
<AssignVariable>
ile ayarlanan hedef akış değişkeninin değerini tanımlar. İlgili içeriği oluşturmak için kullanılan
değer her zaman düz bir dize olarak yorumlanır; değer olarak bir akış değişkeni kullanamazsınız,
değeri parantez içine alırsanız ("{}"). Akış değişkeni kullanmak için <Ref>
değerini kullanın
.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize |
Üst Öğe |
<AssignVariable>
|
Alt Öğeler | Yok |
<Ref>
öğesiyle birlikte kullanıldığında <Value>
varsayılan (veya yedek) değer olarak işlev görür. <Ref>
belirtilmezse
çözümlenemez ya da null ise <Value>
değeri kullanılır.
<Value>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <AssignVariable> <Name>variable_name</Name> <Value>variable_value</Value> </AssignVariable> </AssignMessage>
1. Örnek
Aşağıdaki örnekte hedef akış değişkeninin değeri myvar
değer "42" olsun:
<AssignMessage name="assignvariable-1"> <AssignVariable> <Name>myvar</Name> <Value>42</Value> </AssignVariable> </AssignMessage>
2. Örnek
Aşağıdaki örnekte, akış değişkeninin değeri
myvar
akış değişkenine ve değerine request.header.user-agent
Country
değişkenine country
sorgu parametresi eklemek için:
<AssignMessage name="assignvariable-2"> <AssignVariable> <Name>myvar</Name> <Ref>request.header.user-agent</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> <AssignVariable> <Name>Country</Name> <Ref>request.queryparam.country</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> </AssignMessage>
İki atama da başarısız olursa <AssignVariable>
bunun yerine "ErrorOnCopy" değerini atar -
hedef akış değişkeninin değeridir.
<Copy>
source
özelliği tarafından belirtilen mesajdaki değerleri kopyalar
To <AssignTo>
öğesi tarafından belirtilen mesaja eklenir. Belirli bir
<AssignTo>
öğesini içeren bir hedef içeriyorsa bu politika, değerleri isteğe veya yanıta kopyalarsa
bu politikanın akışın neresinde yürütüldüğüne bağlıdır.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize |
Üst Öğe |
<AssignMessage>
|
Alt Öğeler |
<FormParams> <Headers> <Path> <Payload> <QueryParams> <ReasonPhrase> <StatusCode> <Verb> <Version> |
<Copy>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage
continueOnError="[false|true]"
enabled="[true|false]"
name="policy_name" >
<Copy source="[request|response]">
<!-- Can also be an empty array (<FormParams/>) -->
<FormParams>
<FormParam name="formparam_name">formparam_value</FormParam>
...
</FormParams>
<!-- Can also be an empty array (<Headers/>) -->
<Headers>
<Header name="header_name">header_value</Header>
...
</Headers>
<Path>[false|true]</Path>
<Payload>[false|true]</Payload>
<!-- Can also be an empty array (<QueryParams/>) -->
<QueryParams>
<QueryParam name="queryparam_name">queryparam_value</QueryParam>
...
</QueryParams>
<ReasonPhrase>[false|true]</ReasonPhrase>
<StatusCode>[false|true]</StatusCode>
<Verb>[false|true]</Verb>
<Version>[false|true]</Version>
</Copy>
<!-- Used as the destination for the <Copy>
values -->
<AssignTo createNew="[true|false]" transport="http"
type="[request|response]">destination_variable_name</AssignTo>
</AssignMessage>
1. Örnek
Aşağıdaki örnekte bir üstbilgi, üç form parametresi, yol ve tüm sorgu, yeni, özel bir isteğe geçirmek için istekte bulunan parametreleri içerir:
<AssignMessage continueOnError="false" enabled="true" name="copy-1"> <Copy source="request"> <Headers> <Header name="Header_Name_1">Header value 1</Header> </Headers> <FormParams> <FormParam name="Form_Param_Name_1">Form param value 1</FormParam> <FormParam name="Form_Param_Name_2">Form param value 1</FormParam> <FormParam name="Form_Param_Name_3">Form param value 1</FormParam> </FormParams> <Payload>false</Payload> <Path>true</Path> <QueryParams/> <ReasonPhrase>false</ReasonPhrase> <StatusCode>false</StatusCode> <Verb>false</Verb> <Version>false</Version> </Copy> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
<Copy>
öğesi aşağıdaki özelliklere sahiptir:
Özellik | Açıklama | Zorunlu mu? | Tür |
---|---|---|---|
source |
Kopyanın kaynak nesnesini belirtir.
|
İsteğe bağlı | Dize |
<FormParams>
(<Copy>
hesabının altında)
<Copy>
öğenin source
özelliği to istek
<AssignTo>
öğesiyle belirtilir. Bu öğenin,
tıklayın.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <FormParam> öğeleri dizisi veya boş bir dizi |
Üst Öğe |
<Copy>
|
Alt Öğeler |
<FormParam> |
<FormParams>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <!-- Can also be an empty array (<FormParams/>) --> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte, istekten "MyCustomRequest" özel isteği:
<AssignMessage name="copy-formparams-1"> <Copy source="request"> <FormParams> <FormParam name="paramName">Form param value 1</FormParam> </FormParams> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
2. Örnek
Aşağıdaki örnekte, tüm form parametreleri özel isteğe kopyalanır "MyCustomRequest":
<AssignMessage name="copy-formparams-2"> <Copy source="request"> <FormParams/> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
3. Örnek
Aşağıdaki örnekte, özel isteğe üç form parametresi kopyalanır "MyCustomRequest":
<AssignMessage name="copy-formparams-3"> <Copy source="request"> <FormParams> <FormParam name="paramName1"/> <FormParam name="paramName2"/> <FormParam name="paramName3"/> </FormParams> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
4. Örnek
Aynı ada sahip birden fazla form parametresi varsa aşağıdaki söz dizimini kullanın:
<AssignMessage name="copy-formparams-4"> <Copy source="request"> <FormParams> <FormParam name="f1"/> <FormParam name="f2"/> <FormParam name="f3.2"/> </FormParams> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
Bu örnekte "f1", "f2" ve ikinci "f3" değeri kopyalanır. "f3" ise yalnızca bir tane var değeri kopyalanmazsa kopyalanmaz.
<FormParams>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- HTTP fiili: POST
- Mesaj türü: Yanıt
- Aşağıdakilerden biri (veya her ikisi):
- Form verisi: Bir değere veya "" değerine ayarlayın (boş dize). Örneğin,
curl
, isteğinize-d ""
ekleyin. Content-Length
üstbilgisi: 0 olarak ayarlanır ( orijinal talep; aksi takdirde geçerli uzunluk. Örneğin,curl
, isteğinize-H "Content-Length: 0"
ekleyin.
- Form verisi: Bir değere veya "" değerine ayarlayın (boş dize). Örneğin,
<FormParams>
öğesini kopyaladığınızda <Copy>
, iletinin Content-Type
ayarını şu şekilde ayarlar:
"application/x-www-form-urlencoded" ve mesajı hedef hizmete göndermeden önce gönderilir.
<Headers>
(<Copy>
hesabının altında)
HTTP üst bilgilerini
<Copy>
öğesinin source
özelliği iste
veya <AssignTo>
öğesi ile belirtilen yanıt mesajından yararlanın.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <Header> öğeleri dizisi veya boş bir dizi |
Üst Öğe |
<Copy>
|
Alt Öğeler |
<Header> |
<Headers>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <!-- Can also be an empty array (<Headers/>) --> <Headers> <Header name="header_name">header_value</Header> ... </Headers> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte, istekten user-agent
üstbilgisine kopyalanan
yeni, özel istek nesnesi:
<AssignMessage name="copy-headers-1"> <Copy source="request"> <Headers> <Header name="user-agent"/> </Headers> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
2. Örnek
Tüm üst bilgileri kopyalamak için aşağıdaki örnekte gösterildiği gibi boş bir <Headers>
öğesi kullanın
gösterir:
<AssignMessage name="copy-headers-2"> <Copy source="request"> <Headers/> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
3. Örnek
Aynı ada sahip birden fazla üstbilgi varsa aşağıdaki söz dizimini kullanın:
<AssignMessage name="copy-headers-3"> <Copy source="request"> <Headers> <Header name="h1"/> <Header name="h2"/> <Header name="h3.2"/> </Headers> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
Bu örnekte "h1", "h2" ve ikinci "h3" değeri kopyalanır. "h3" ise yalnızca bir tane var değeri kopyalanmazsa kopyalanmaz.
<Path>
(<Copy>
hesabının altında)
Yolun kaynak istekten hedefe kopyalanıp kopyalanmayacağını belirler isteğinde bulunabilirsiniz. Bu öğenin yanıtlar üzerinde etkisi yoktur.
"true" (doğru) değerine ayarlanırsa bu politika, yolu
<Copy>
öğesinin source
özelliği talebe
<AssignTo>
öğesi ile belirtilen mesajdır.
Varsayılan Değer | Yanlış |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<Copy>
|
Alt Öğeler | Yok |
<Path>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <Path>[false|true]</Path> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte,assignMessage politikasının yolu kaynaktan kopyalaması gerektiği belirtilmektedir yeni, özel istek nesnesine istekte bulunun:
<AssignMessage name="copy-path-1"> <Copy source="request"> <Path>true</Path> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
<Path>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: İstek
<Payload>
(<Copy>
hesabının altında)
Yükün kaynaktan hedefe kopyalanıp kopyalanmayacağını belirler. Kaynak ve hedef, istekler ya da yanıtlar olabilir.
Politika "true" (doğru) değerine ayarlanırsa bu politika yükü
<Copy>
öğesinin source
özelliği iletiyle
<AssignTo>
öğesiyle belirtilir.
Varsayılan Değer | Yanlış |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<Copy>
|
Alt Öğeler | Yok |
<Payload>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <Payload>[false|true]</Payload> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte <Payload>
değeri "true" olarak ayarlanmaktadır. Böylece istek yükü
İstekten yanıta kopyalanan kopya:
<AssignMessage name="copy-payload-1"> <Copy source="request"> <Payload>true</Payload> </Copy> <AssignTo createNew="true" transport="http" type="response"/> </AssignMessage>
<QueryParams>
(<Copy>
hesabının altında)
Sorgu dizesi parametrelerini
<Copy>
öğesinin source
özelliği, belirtilen istek için
<AssignTo>
öğesine dokunun. Bu öğenin yanıtlar üzerinde etkisi yoktur.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <QueryParam> öğeleri dizisi veya boş bir dizi |
Üst Öğe |
<QueryParam>
|
Alt Öğeler | Yok |
<QueryParams>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <!-- Can also be an empty array (<QueryParams/>) --> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte "my_param" kopyalanır sorgu parametresini istekten yeni bir özel istek nesnesi:
<AssignMessage name="copy-queryparams-1"> <Copy source="request"> <QueryParams> <QueryParam name="my_param"/> </QueryParams> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
2. Örnek
Aşağıdaki örnekte, istekteki tüm sorgu parametreleri yeni, özel bir istek nesnesi:
<AssignMessage name="copy-queryparams-2"> <Copy source="request"> <QueryParams/> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
3. Örnek
Aynı ada sahip birden fazla sorgu parametresi varsa aşağıdaki söz dizimini kullanın:
<AssignMessage name="copy-queryparams-3"> <Copy source="request"> <QueryParams> <QueryParam name="qp1"/> <QueryParam name="qp2"/> <QueryParam name="qp3.2"/> </QueryParams> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
Bu örnekte "qp1", "qp2" ve ikinci "qp3" değeri kopyalanır. "qp3" ise sadece değeri tek bir değerse kopyalanmaz.
<QueryParams>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- HTTP fiili: GET
- Mesaj türü: İstek
<ReasonPhrase>
(<Copy>
hesabının altında)
Kelime öbeğinin yanıt verir. Bu öğenin istek üzerinde hiçbir etkisi yoktur.
"true" (doğru) değerine ayarlanırsa bu politika, ReasonPhrase
öğesini yanıttan kopyalar
<Copy>
öğesinin source
özelliği tarafından yanıt için belirtilir
<AssignTo>
öğesi tarafından belirtilir.
Varsayılan Değer | Yanlış |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<Copy>
|
Alt Öğeler | Yok |
<ReasonPhrase>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <ReasonPhrase>[false|true]</ReasonPhrase> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte <ReasonPhrase>
değeri "true" olarak ayarlanarak <Copy>
neden olur
(varsayılan yanıttaki neden ifadesini özel yanıt nesnesine kopyalamak için):
<AssignMessage name="copy-reasonphrase-1"> <Copy source="response"> <ReasonPhrase>true</ReasonPhrase> </Copy> <AssignTo createNew="trie" transport="http" type="response">MyCustomResponse</AssignTo> </AssignMessage>
<ReasonPhrase>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: Yanıt
<StatusCode>
(<Copy>
hesabının altında)
Durum kodunun kaynak yanıttan hedefe kopyalanıp kopyalanmadığını belirler tıklayın. Bu öğenin istek üzerinde hiçbir etkisi yoktur.
Politika "true" (doğru) değerine ayarlanırsa bu politika, durum kodunu
<Copy>
öğesinin source
özelliği yanıtla
<AssignTo>
öğesi ile belirtilen mesajdır.
Varsayılan Değer | Yanlış |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<Copy>
|
Alt Öğeler | Yok |
<StatusCode>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <StatusCode>[false|true]</StatusCode> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte <StatusCode>
değeri "true" olarak ayarlanarak durum kodu kopyalanır
yeni, özel yanıt nesnesine ekleyin:
<AssignMessage name="copy-statuscode-1"> <Copy source="response"> <StatusCode>true</StatusCode> </Copy> <AssignTo createNew="true" transport="http" type="response">MyCustomResponse</AssignTo> </AssignMessage>
<StatusCode>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: Yanıt
<StatusCode>
için yaygın bir kullanım, proxy yanıtının aynı duruma sahip olmasını sağlamaktır.
<AssignTo>
createNew
olduğunda hedeften alınan yanıt olarak
özelliğinin değeri "true" olarak ayarlanmıştır.
<Verb>
(<Copy>
hesabının altında)
HTTP fiilinin kaynak istekten hedefe kopyalanıp kopyalanmadığını belirler isteğinde bulunabilirsiniz. Bu öğenin yanıtlar üzerinde etkisi yoktur.
"true" (doğru) değerine ayarlanırsa <Copy>
öğesinin source
özelliğinde bulunan fiil kopyalanır
<AssignTo>
öğesinde belirtilen isteğe uyar.
Varsayılan Değer | Yanlış |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<Copy>
|
Alt Öğeler | Yok |
<Verb>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <Verb>[false|true]</Verb> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte <Verb>
, "true" (doğru) değerine ayarlanarak
yeni, özel bir isteğe varsayılan istek:
<AssignMessage name="copy-verb-1"> <Copy source="request"> <Verb>true</Verb> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
<Verb>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: İstek
<Version>
(<Copy>
hesabının altında)
HTTP sürümünün kaynak istekten hedef isteğidir. Bu öğenin yanıtlar üzerinde etkisi yoktur.
"true" (doğru) değerine ayarlanırsa <Copy>
öğesinin source
özelliğinde bulunan HTTP sürümünü kopyalar
öğesi ile belirtilen nesneye <AssignTo>
ekleyin.
Varsayılan Değer | Yanlış |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<Copy>
|
Alt Öğeler | Yok |
<Version>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Copy source="[request|response]"> <Version>[false|true]</Version> </Copy> </AssignMessage>
1. Örnek
Aşağıdaki örnekte <Version>
değeri "true" olarak ayarlanmaktadır. bu da isteğe bağlı olarak
sürümünü varsayılan istek nesnesinden yeni, özel bir istek nesnesine dönüştürün:
<AssignMessage name="copy-version-1"> <Copy source="request"> <Version>true</Version> </Copy> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
<Version>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: İstek
<DisplayName>
Politikayı name
özelliğine ek olarak
farklı, daha doğal bir ada sahip yönetim arayüzü proxy düzenleyicisi.
<DisplayName>
öğesi tüm politikalarda ortaktır.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı. <DisplayName> değerini çıkarırsanız
politikanın name özelliği kullanılıyor |
Tür | Dize |
Üst Öğe | <PolicyElement> |
Alt Öğeler | Yok |
<DisplayName>
öğesi şu söz dizimini kullanır:
Söz dizimi
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
Örnek
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
<DisplayName>
öğesinin özelliği veya alt öğesi yok.
<IgnoreUnresolvedVariables>
Çözümlenmemiş bir değişkenle karşılaşıldığında işlemenin durup durmayacağını belirler.
Varsayılan Değer | Yanlış |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<AssignMessage>
|
Alt Öğeler | Yok |
Çözümlenmemiş değişkenleri yoksayıp işlemeye devam etmek için true
olarak ayarlayın; aksi takdirde
false
. Varsayılan değer false
değeridir.
<IgnoreUnresolvedVariables>
öğesinin true
olarak ayarlanması,
<AssignMessage>
'in continueOnError
- true
alma ve değişkenlerin değerlerini belirleme. continueOnError
öğesini şuna ayarlarsanız:
true
ve ardından Edge, yalnızca kullanılırken karşılaşılan hataları değil, tüm hataları yoksayar
değişkenlerine karşılık gelir.
<IgnoreUnresolvedVariables>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables> </AssignMessage>
1. Örnek
Aşağıdaki örnekte <IgnoreUnresolvedVariables>
değeri "true" olarak ayarlanmaktadır:
<AssignMessage name="ignoreunresolvedvariables"> <Copy source="response"> ... <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </Copy> </AssignMessage>
<Remove>
Üstbilgileri, sorgu parametrelerini, form parametrelerini ve/veya ileti yükünü
mesaj gönderebilirsiniz. Mesaj, bir istek veya yanıt olabilir. <Remove>
mesajını siz belirtebilirsiniz
<AssignTo>
öğesini kullanarak ona göre hareket eder.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Karmaşık tür |
Üst Öğe |
<AssignMessage>
|
Alt Öğeler |
<FormParams> <Headers> <Payload> <QueryParams> |
<Remove>
için yaygın bir kullanım alanı, hassas kod içeren bir sorgu parametresini silmektir.
arka uç sunucusuna iletmekten kaçınmak için gelen istek nesnesindeki bilgileri hariç tutmanızı sağlar.
<Remove>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Remove> <!-- Can also be an empty array (<FormParams/>) --> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> <!-- Can also be an empty array (<Headers/>) --> <Headers> <Header name="header_name">header_value</Header> ... </Headers> <Payload>[false|true]</Payload> <!-- Can also be an empty array (<QueryParams/>) --> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> </Remove> </AssignMessage>
1. Örnek
Aşağıdaki örnek, iletinin gövdesini yanıttan kaldırır:
<AssignMessage continueOnError="false" enabled="true" name="remove-1"> <DisplayName>remove-1</DisplayName> <Remove> <Payload>true</Payload> </Remove> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>
Yanıt akışında bu politika yanıtın gövdesini kaldırıp yalnızca HTTP değerini döndürür üstbilgiyi müşteriye gönderebilirsiniz.
2. Örnek
Aşağıdaki örnek, gelen istek:
<AssignMessage continueOnError="false" enabled="true" name="remove-2"> <Remove> <!-- Empty (<FormParams/>) removes all form parameters --> <FormParams/> <QueryParams> <QueryParam name="qp1"/> </QueryParams> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
<FormParams>
(<Remove>
hesabının altında)
Belirtilen form parametrelerini istekten kaldırır. Bu öğenin, tıklayın.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <FormParam> öğeleri dizisi veya boş bir dizi |
Üst Öğe |
<Remove>
|
Alt Öğeler |
<FormParam> |
<FormParams>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Remove> <!-- Can also be an empty array (<FormParams/>) --> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> </Remove> </AssignMessage>
1. Örnek
Aşağıdaki örnek, istekten üç form parametresini kaldırır:
<AssignMessage name="remove-formparams-1"> <Remove> <FormParams> <FormParam name="form_param_1"/> <FormParam name="form_param_2"/> <FormParam name="form_param_3"/> </FormParams> </Remove> <AssignTo createNew="false" transport="http" type="application/x-www-form-urlencoded"/> </AssignMessage>
2. Örnek
Aşağıdaki örnek, istekteki tüm form parametrelerini kaldırır:
<AssignMessage name="remove-formparams-2"> <Remove> <FormParams/> </Remove> <AssignTo createNew="false" transport="http" type="application/x-www-form-urlencoded"/> </AssignMessage>
3. Örnek
Aynı ada sahip birden fazla form parametresi varsa aşağıdaki söz dizimini kullanın:
<AssignMessage name="remove-formparams-3"> <Remove> <FormParams> <FormParam name="f1"/> <FormParam name="f2"/> <FormParam name="f3.2"/> </FormParams> </Remove> <AssignTo createNew="false" transport="http" type="application/x-www-form-urlencoded"/> </AssignMessage>
Bu örnekte "f1", "f2" ve ikinci "f3" değeri kaldırılmıştır. "f3" ise yalnızca bir tane var değerine ayarlanırsa kaldırılmaz.
<FormParams>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: İstek
Content-Type
: "application/x-www-form-urlcoding"
<Headers>
(<Remove>
hesabının altında)
Belirtilen HTTP başlıklarını istekten veya yanıttan kaldırır. Bu istek veya yanıt
<AssignTo>
öğesi.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <Header> öğeleri dizisi veya boş bir dizi |
Üst Öğe |
<Remove>
|
Alt Öğeler |
<Header> |
<Headers>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Remove> <!-- Can also be an empty array (<Headers/>) --> <Headers> <Header name="header_name">header_value</Header> ... </Headers> </Remove> </AssignMessage>
1. Örnek
Aşağıdaki örnek, user-agent
üstbilgisini istekten kaldırır:
<AssignMessage name="remove-headers-1"> <Remove> <Headers> <Header name="user-agent"/> </Headers> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
2. Örnek
Aşağıdaki örnek, istekten tüm üstbilgileri kaldırır:
<AssignMessage name="remove-headers-2"> <Remove> <Headers/> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
3. Örnek
Aynı ada sahip birden fazla üstbilgi varsa aşağıdaki söz dizimini kullanın:
<AssignMessage name="remove-headers-3"> <Remove> <Headers> <Header name="h1"/> <Header name="h2"/> <Header name="h3.2"/> </Headers> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Bu örnek "h1", "h2" ve ikinci "h3" değerini kaldırır . "h3" ise tek bir değere sahipse bu değer kaldırılmaz.
<Payload>
(<Remove>
hesabının altında)
<Remove>
öğesinin, istek veya yanıttaki yükü silip silmeyeceğini belirler.
<AssignTo>
öğesi tarafından belirtilir. "true" (doğru) olarak ayarlayın -
Yükü temizleyin; Aksi takdirde "false" olur. Varsayılan değer "false" (yanlış) değeridir.
Varsayılan Değer | Yanlış |
Zorunlu mu? | İsteğe bağlı |
Tür | Boole |
Üst Öğe |
<Remove>
|
Alt Öğeler | Yok |
<Payload>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Remove> <Payload>[false|true]</Payload> </Remove> </AssignMessage>
1. Örnek
Aşağıdaki örnekte <Payload>
değeri "true" olarak ayarlanmaktadır. Böylece istek yükü
temizlendi:
<AssignMessage name="remove-payload-1"> <Remove> <Payload>true</Payload> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
<QueryParams>
(<Remove>
hesabının altında)
Belirtilen sorgu parametrelerini istekten kaldırır. Bu öğenin, tıklayın.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <QueryParam> öğeleri dizisi veya boş bir dizi |
Üst Öğe |
<Remove>
|
Alt Öğeler |
<QueryParam> |
<QueryParams>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Remove> <!-- Can also be an empty array (<QueryParams/>) --> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> </Remove> </AssignMessage>
1. Örnek
Aşağıdaki örnek, istekten tek bir sorgu parametresini kaldırır:
<AssignMessage name="remove-queryparams-1"> <Remove> <QueryParams> <QueryParam name="qp1"/> </QueryParams> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
2. Örnek
Aşağıdaki örnek, istekteki tüm sorgu parametrelerini kaldırır:
<AssignMessage name="remove-queryparams-2"> <Remove> <QueryParams/> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
3. Örnek
Aynı ada sahip birden fazla sorgu parametresi varsa aşağıdaki söz dizimini kullanın:
<AssignMessage name="remove-queryparams-3"> <Remove> <QueryParams> <QueryParam name="qp1"/> <QueryParam name="qp2"/> <QueryParam name="qp3.2"/> </QueryParams> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Bu örnek "qp1", "qp2" ve "qp3"ün ikinci değerini kaldırır . Eğer "qp3" tek bir değere sahipse bu değer kaldırılmaz.
4. Örnek
Aşağıdaki örnek, apikey
sorgu parametresini istekten kaldırır:
<AssignMessage name="remove-query-param"> <Remove> <QueryParams> <QueryParam name="apikey"/> </QueryParams> </Remove> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
<QueryParams>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- HTTP fiili: GET
- Mesaj türü: İstek
<Set>
İstek veya yanıt mesajındaki
<AssignTo>
öğesi. <Set>
, başlıkların üzerine yazar veya
parametrelerine dikkat edin. Yeni bir başlık veya parametre oluşturmak için
<Add>
öğesini kullanın.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Karmaşık tür |
Üst Öğe |
<AssignMessage>
|
Alt Öğeler |
<FormParams> <Headers> <Payload> <Path> <QueryParams> <ReasonPhrase> <StatusCode> <Verb> <Version> |
<Set>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> <Headers> <Header name="header_name">header_value</Header> ... </Headers> <Path>path</Path> <Payload contentType="content_type" variablePrefix="prefix" variableSuffix="suffix">new_payload</Payload> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> <ReasonPhrase>reason_for_error or {variable}</ReasonPhrase> <StatusCode>HTTP_status_code or {variable}</StatusCode> <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb> <Version>[1.0|1.1|{variable}]</Verb> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte <Set>
öğesi gösterilmektedir:
<AssignMessage continueOnError="false" enabled="true" name="set-1"> <Set> <FormParams> <FormParam name="myparam">{request.header.myparam}</FormParam> </FormParams> <Headers> <Header name="user-agent">{request.header.user-agent}</Header> </Headers> <QueryParams> <QueryParam name="name">{request.header.name}</QueryParam> <QueryParam name="address">{request.header.address}</QueryParam> </QueryParams> <!-- <Verb>GET</Verb> --> <Payload contentType="text/plain">42</Payload> <Path/> <ReasonPhrase>Bad request</ReasonPhrase> <StatusCode>400</StatusCode> <Verb>POST</Verb> <Verb>{my_variable}</Verb> <Version>1.1</Version> </Set> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>
<FormParams>
(<Set>
hesabının altında)
Bir istekteki mevcut form parametrelerinin üzerine yazar ve bunları istediğiniz yeni değerlerle değiştirir belirtir. Bu öğenin yanıtlar üzerinde etkisi yoktur.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <FormParam> öğeleri dizisi |
Üst Öğe |
<Set>
|
Alt Öğeler |
<FormParam> |
<FormParams>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <FormParams> <FormParam name="formparam_name">formparam_value</FormParam> ... </FormParams> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte "myparam" adlı bir form parametresi ayarlanıyor ve
Yeni, özel bir istekte request.header.myparam
değişken:
<AssignMessage name="set-formparams-1"> <Set> <FormParams> <FormParam name="myparam">{request.header.myparam}</FormParam> </FormParams> </Set> <AssignTo createNew="true" transport="http" type="request">MyCustomRequest</AssignTo> </AssignMessage>
<FormParams>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- HTTP fiili: POST
- Mesaj türü: İstek
Politikanızda boş form parametreleri tanımlarsanız
(<Add><FormParams/></Add>
), politika hiçbir form eklemez
parametreleridir. Bu, <FormParams>
öğesinin atlanmasıyla aynıdır.
<Set>
, mesajın Content-Type
değerini şu şekilde değiştirir:
"application/x-www-form-urlencoded" .
<Headers>
(<Set>
hesabının altında)
İstek veya yanıttaki
<AssignTo>
öğesi.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <Header> öğeleri dizisi |
Üst Öğe |
<Set>
|
Alt Öğeler |
<Header> |
<Headers>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <Headers> <Header name="header_name">header_value</Header> ... </Headers> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte user-agent
üstbilgisi,
request.header.user-agent
değişkeni:
<AssignMessage name="set-headers-1"> <Set> <Headers> <Header name="user-agent">{request.header.user-agent}</Header> </Headers> </Set> <AssignTo createNew="true" transport="http" type="response"/> </AssignMessage>
Politikanızda boş başlıklar tanımlarsanız
(<Add><Headers/></Add>
) ayarlanırsa politika herhangi bir başlık eklemez. Bu
<Headers>
değerinin atlanmasıyla aynıdır.
<Path>
(<Set>
hesabının altında)
.
<Payload>
(<Set>
hesabının altında)
Bir istek veya yanıt için ileti gövdesini tanımlar. Bu konu
<AssignTo>
öğesi. Yük, düz gibi geçerli herhangi bir içerik türü olabilir.
metin, JSON veya XML.
Varsayılan Değer | boş dize |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize |
Üst Öğe |
<Set>
|
Alt Öğeler | Yok |
<Payload>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <Payload contentType="content_type" variablePrefix="prefix" variableSuffix="suffix">new_payload</Payload> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte bir düz metin yükü ayarlanmaktadır:
<AssignMessage name="set-payload-1"> <Set> <Payload contentType="text/plain">42</Payload> </Set> </AssignMessage>
2. Örnek
Aşağıdaki örnekte bir JSON yükü ayarlanmaktadır:
<AssignMessage name="set-payload-2"> <Set> <Payload contentType="application/json"> {"name":"foo", "type":"bar"} </Payload> </Set> </AssignMessage>
3. Örnek
Aşağıdaki örnekte değişken adlarını sarmalayarak yüke değişken değerleri eklenmiştir küme ayraçları içinde:
<AssignMessage name="set-payload-3"> <Set> <Payload contentType="application/json"> {"name":"foo", "type":"{variable_name}"} </Payload> </Set> </AssignMessage>
Apigee Edge'in eski sürümlerinde (örneğin, 16.08.17 bulut sürümünden önce) şunu yapabilirsiniz:
JSON yüklerindeki değişken referansları belirtmek için küme parantezleri kullanmamalıdır. Bu sürümlerde,
variablePrefix
ve variableSuffix
özelliklerinin kullanılması gereken
ayırıcı karakterler belirtin ve bunları aşağıdaki gibi değişken adlarını sarmalamak için kullanın:
<AssignMessage name="set-payload-3b"> <Set> <Payload contentType="application/json" variablePrefix="@" variableSuffix="#"> {"name":"foo", "type":"@variable_name#"} </Payload> </Set> </AssignMessage>
Bu eski söz dizimi hâlâ çalışmaktadır.
4. Örnek
<Payload>
içeriğinin içeriği ileti şablonu olarak değerlendirilir. Bu,
AttributionMessage politikası, küme ayraçları içine alınmış değişkenleri
referanslı değişkenlerden ibarettir.
Aşağıdaki örnekte, yükün bir kısmını değişken değeri:
<AssignMessage name="set-payload-4"> <Set> <Payload contentType="text/xml"> <root> <e1>sunday</e1> <e2>funday</e2> <e3>{var1}</e3> </root> </Payload> </Set> </AssignMessage>.
Aşağıdaki tabloda <Payload>
özellikleri açıklanmaktadır:
Özellik | Açıklama | Varlık | Tür |
---|---|---|---|
contentType |
Belirtilirse |
İsteğe bağlı | Dize |
variablePrefix |
İsteğe bağlı olarak, bir akış değişkeninde baştaki sınırlayıcıyı belirtir. Varsayılan olarak "{" değerine ayarlanır. Örneğin, Daha fazla bilgi için Akış değişkenleri referansı bölümüne bakın. | İsteğe bağlı | Char |
variableSuffix |
İsteğe bağlı olarak, bir akış değişkeninde sondaki sınırlayıcıyı belirtir. Varsayılan olarak "}" değerine ayarlanır. Örneğin, Daha fazla bilgi için Akış değişkenleri referansı bölümüne bakın. | İsteğe bağlı | Char |
<QueryParams>
(<Set>
hesabının altında)
İstekteki mevcut sorgu parametrelerinin üzerine yeni değerlerle yazar. Bu öğenin etkisi yok yanıt olarak kullanabilirsiniz.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | <QueryParam> öğeleri dizisi |
Üst Öğe |
<Set>
|
Alt Öğeler |
<QueryParam> |
<QueryParams>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <QueryParams> <QueryParam name="queryparam_name">queryparam_value</QueryParam> ... </QueryParams> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte "address" sorgu parametresini
request.header.address
değişkeni:
<AssignMessage continueOnError="false" enabled="true" name="set-queryparams-1"> <Set> <QueryParams> <QueryParam name="address">{request.header.address}</QueryParam> </QueryParams> </Set> </AssignMessage>
<QueryParams>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- HTTP fiili: GET
- Mesaj türü: İstek
Politikanızda boş sorgu parametreleri tanımlarsanız
(<Set><QueryParams/></Set>
), politika hiçbir sorgu ayarlamaz
parametreleridir. Bu, <QueryParams>
öğesinin hariç tutulmasıyla aynıdır.
<ReasonPhrase>
(<Set>
hesabının altında)
Yanıttaki neden ifadesini ayarlar. Bu işlem, genellikle
<StatusCode>
Bu öğenin istek üzerinde hiçbir etkisi yoktur.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize |
Üst Öğe |
<Set>
|
Alt Öğeler | Yok |
<ReasonPhrase>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <ReasonPhrase>reason_for_error or {variable}</ReasonPhrase> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte basit bir neden ifadesi tanımlanmaktadır:
<AssignMessage name="set-reasonphrase-1"> <Set> <ReasonPhrase>Bad medicine</ReasonPhrase> </Set> <AssignTo createNew="true" transport="http" type="response"/> </AssignMessage>
2. Örnek
<ReasonPhrase>
içeriğinin içeriği ileti şablonu olarak değerlendirilir. Bunun anlamı şudur:
küme parantezleri içine alınmış bir değişken adı, çalışma zamanında
referans değişkene (aşağıdaki örnekte gösterildiği gibi) bakın:
<AssignMessage name="set-reasonphrase-2"> <Set> <ReasonPhrase>{calloutresponse.reason.phrase}</ReasonPhrase> </Set> <AssignTo createNew="true" transport="http" type="response"/> </AssignMessage>
<ReasonPhrase>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: Yanıt
<StatusCode>
(<Set>
hesabının altında)
Yanıttaki durum kodunu ayarlar. Bu öğenin istek üzerinde hiçbir etkisi yoktur.
Varsayılan Değer | "200" (<AssignTo> adlı kullanıcının createNew özelliği
değeri "true" olarak ayarlanmıştır) |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize veya variable |
Üst Öğe |
<Set>
|
Alt Öğeler | Yok |
<StatusCode>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <StatusCode>HTTP_status_code or {variable}</StatusCode> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte basit bir durum kodu ayarlanmaktadır:
<AssignMessage name="set-statuscode-1"> <Set> <StatusCode>404</StatusCode> </Set> <AssignTo createNew="true" transport="http" type="response"/> </AssignMessage>
2. Örnek
<StatusCode>
içeriğinin içeriği ileti şablonu olarak değerlendirilir. Bu, kullanıcı
küme ayraçları içine alınmış değişken adı, çalışma zamanında
referans değişkene (aşağıdaki örnekte gösterildiği gibi) bakın:
<AssignMessage name="set-statuscode-2"> <Set> <StatusCode>{calloutresponse.status.code}</StatusCode> </Set> <AssignTo createNew="true" transport="http" type="response"/> </AssignMessage>
<StatusCode>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: Yanıt
<Verb>
(<Set>
hesabının altında)
İstekte HTTP fiilini ayarlar. Bu öğenin yanıtlar üzerinde etkisi yoktur.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize veya variable |
Üst Öğe |
<Set>
|
Alt Öğeler | Yok |
<Verb>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte istekle ilgili basit bir fiil ayarlanmaktadır:
<AssignMessage name="set-verb-1"> <Set> <Verb>POST</Verb> </Set> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
2. Örnek
<Verb>
içeriğinin içeriği ileti şablonu olarak değerlendirilir. Bu, değişken adı anlamına gelir
sarmalanmış küme parantezleri, çalışma zamanında referans verilen
değişkenine eklenmelidir.
Aşağıdaki örnekte bir fiili doldurmak için bir değişken kullanılmaktadır:
<AssignMessage name="set-verb-2"> <Set> <Verb>{my_variable}</Verb> </Set> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
<Verb>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: İstek
<Version>
(<Set>
hesabının altında)
Bir istekteki HTTP sürümünü ayarlar. Bu öğenin yanıtlar üzerinde etkisi yoktur.
Varsayılan Değer | Yok |
Zorunlu mu? | İsteğe bağlı |
Tür | Dize veya variable |
Üst Öğe |
<Set>
|
Alt Öğeler | Yok |
<Version>
öğesi şu söz dizimini kullanır:
Söz dizimi
<AssignMessage continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <Set> <Version>[1.0|1.1|{variable}]</Verb> </Set> </AssignMessage>
1. Örnek
Aşağıdaki örnekte sürüm numarası "1.1" olarak ayarlanmaktadır:
<AssignMessage name="set-version-1"> <Set> <Version>1.1</Version> </Set> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
2. Örnek
Aşağıda, sürüm numarasını ayarlamak için süslü ayraç içinde bir değişken kullanılmaktadır:
<AssignMessage name="set-version-2"> <Set> <Version>{my_version}</Version> </Set> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
<Version>
içeriğinin içeriği ileti şablonu olarak değerlendirilir. Bu, kullanıcı
küme ayraçları içine alınmış değişken adı, çalışma zamanında referans verilen
değişkenine eklenmelidir.
<Version>
özelliğini yalnızca aşağıdaki ölçütler karşılandığında kullanabilirsiniz:
- Mesaj türü: İstek
Özel istek mesajları oluşturma
Özel bir istek mesajı oluşturmak içinassignMessage politikasını kullanabilirsiniz. Özel bir kitle oluşturduktan sonra aşağıdaki şekillerde kullanabilirsiniz:
- Diğer politikalardaki değişkenlerine erişme
- Harici bir hizmete iletme
Özel bir istek mesajı oluşturmak içinassignMessage politikanızdaki <AssignTo>
öğesini kullanın
politikası. createNew
değerini "true" olarak ayarlayın ve gövdedeki yeni iletinin adını belirtme
öğesine ait aşağıdaki örnekte gösterildiği gibi:
<AssignMessage name="assignto-2"> <AssignTo createNew="true" transport="http" type="request"/> </AssignMessage>
Varsayılan olarak Edge, özel istek mesajıyla herhangi bir işlem yapmaz. Edge dosyayı oluşturduktan sonra akışa orijinal istekle devam edin. Özel isteği kullanmak için şuna benzer bir politika ekleyin: proxy'nize ServiceReference politikası ile geliştirmenizi sağlar.
Aşağıdaki örneklerde özel istek mesajları oluşturulur:
1. Örnek
Aşağıdaki örnekte, Mesaj Ata seçeneğiyle özel bir istek nesnesi oluşturulur:
<AssignMessage name="AssignMessage-3"> <AssignTo createNew="true" type="request">MyCustomRequest</AssignTo> <Copy> <Headers> <Header name="user-agent"/> </Headers> </Copy> <Set> <QueryParams> <QueryParam name="address">{request.queryparam.addy}</QueryParam> </QueryParams> <Verb>GET</Verb> </Set> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </AssignMessage>
Bu örnek:
- "MyCustomRequest" adlı yeni bir istek mesajı nesnesi oluşturur.
- MyCustomRequest'te bu politika:
- Gelen örnekten
user-agent
HTTP üst bilgisinin değerini kopyalar yeni mesaj için istek gönderebilir. Çünkü<Copy>
,user-agent
akış değişkeni, yok<Copy>
olaraksource
özelliğini belirtmeniz gerekiyor. - Özel mesajdaki
address
sorgu parametresini gelen isteğinaddy
sorgu parametresi. - HTTP fiilini
GET
olarak ayarlar.
- Gelen örnekten
<IgnoreUnresolvedVariables>
değerini "false" olarak ayarlar.<IgnoreUnresolvedVariables>
olduğunda değeri "false" olursa, politikanın eklemeye çalıştığı değişkenlerden biri yoksa Edge çalışmayı durdurur. daha ayrıntılı şekilde ele alacağız.
2. Örnek
Aşağıda, Ata ile özel istek nesnesinin nasıl oluşturulacağını gösteren başka bir örnek verilmiştir. Mesaj:
<AssignMessage name="AssignMessage-2"> <AssignTo createNew="true" type="request">partner.request</AssignTo> <Set> <Verb>POST</Verb> <Payload contentType="text/xml"> <request><operation>105</operation></request> </Payload> </Set> </AssignMessage>
Bu örnek, "partner.request" adlı yeni bir özel istek oluşturur. Daha sonra
Yeni istekte <Verb>
ve <Payload>
.
Özel istek mesajına
akış. Aşağıdaki örnek, özel istek mesajının
user-agent
üstbilgisi:
<AssignMessage name="custom-request-1-access"> <DisplayName>custom-request-1-access</DisplayName> <AssignTo createNew="false" type="request"></AssignTo> <Set> <Headers> <Header name="user-agentCopyCustomRequest">{MyCustomRequest.header.user-agent}</Header> </Headers> </Set> </AssignMessage>
Videolar
AttributionMessage politikası hakkında daha fazla bilgi edinmek için aşağıdaki videoları izleyin.
Video | Açıklama |
---|---|
Neden Atama Yapmalısınız? Mesaj Politikası? | API isteğini değiştirmek içinassignMessage politikasını kullanmanın avantajları hakkında bilgi edinin veya arka uç kodunu değiştirmeden yanıt vermelidir. |
API öğelerini kopyala Atanan İletiler Politikası'nın kullanılması | Bir API isteği veya yanıtındaki öğeleri kopyalama ve yeni bir istek veya yanıt oluşturma nesnesini tanımlayın. |
API'yi kaldır Atamalar politikasını kullanan öğeler | API öğelerini kaldırın ve AttributionMessage politikası. |
API ekleme ve ayarlama Atamalar politikasını kullanan öğeler | Sorgu parametreleri, başlıklar, form parametreleri veya yükü için bir veya daha fazla kontrol sahibi olabilir. |
Özel oluştur Ataması politikasını kullanan değişkenler | Ataması politikasını kullanarak özel akış değişkenlerini ayarlayın ve diğer politikaları etkinleştirmeniz gerekir. |
Yeni oluştur AttributionMessage politikasını kullanan istek veya yanıt nesneleri | API'deki AttributionMessage politikasını kullanarak yeni API isteği veya yanıt nesneleri oluşturma belirler. |
Örnek API oluşturma Atanan İletiler Politikası'nın kullanılması | YanıtaassignMessage politikasını ekleyerek basit bir örnek REST API oluşturun akışı sağlar. |
Atama Politikası'nın kullanıldığı yük | Ataması politikasını kullanarak SOAP yükünü ayarlayarak REST isteğini SOAP isteğine dönüştürün. politika. |
Hata kodları
Bu bölümde, döndürülen hata kodları ve hata mesajları ile bu politika bir hata tetiklediğinde Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiler, hataları ele almak için hata kuralları geliştiriyorsanız bilinmesi önemlidir. Daha fazla bilgi edinmek için Politika hataları hakkında bilmeniz gerekenler ve Hataları ele alma başlıklı makaleleri inceleyin.
Çalışma zamanı hataları
Bu hatalar, politika yürütüldüğünde ortaya çıkabilir.
Hata kodu | HTTP durumu | Neden | Düzelt |
---|---|---|---|
steps.assignmessage.SetVariableFailed |
500 | Politika bir değişken ayarlayamadı. Çözümlenmemiş değişkenin adı için hata dizesine bakın. | |
steps.assignmessage.VariableOfNonMsgType |
500 |
Bu hata, Mesaj türü değişkenleri, HTTP isteklerinin ve yanıtlarının tamamını temsil eder. Yerleşik Edge akış değişkenleri |
build |
steps.assignmessage.UnresolvedVariable |
500 |
Bu hata, Mesaj Atama politikasında belirtilen bir değişken aşağıdaki durumlarda oluşur:
|
build |
Dağıtım hataları
Bu politikayı içeren bir proxy dağıttığınızda bu hatalar oluşabilir.
Hata adı | Neden | Düzelt |
---|---|---|
InvalidIndex |
Mesaj Atama politikasının <Copy> ve/veya <Remove> öğelerinde belirtilen dizin 0 veya negatif bir sayıysa API Proxy'nin dağıtımı başarısız olur.
|
build |
InvalidVariableName |
<Name> alt öğesi boşsa veya <AssignVariable> öğesinde belirtilmemişse değer atanacak geçerli bir değişken adı olmadığından API proxy'sinin dağıtımı başarısız olur. Geçerli bir değişken adı gereklidir.
|
build |
InvalidPayload |
Politikada belirtilen yük geçersiz. |
Hata değişkenleri
Bu değişkenler, politika çalışma zamanında bir hatayı tetiklediğinde ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler başlıklı makaleyi inceleyin.
Değişkenler | Konum | Örnek |
---|---|---|
fault.name="fault_name" |
fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelendiği gibi hatanın adıdır. Hata adı, hata kodunun son kısmıdır. | fault.name Matches "UnresolvedVariable" |
assignmessage.policy_name.failed |
policy_name, hatayı atan politikanın kullanıcı tarafından belirtilen adıdır. | assignmessage.AM-SetResponse.failed = true |
Örnek hata yanıtı
{ "fault":{ "detail":{ "errorcode":"steps.assignmessage.VariableOfNonMsgType" }, "faultstring":"AssignMessage[AM-SetResponse]: value of variable is not of type Message" } }
Örnek hata kuralı
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="Assign Message Faults"> <Step> <Name>AM-CustomNonMessageTypeErrorResponse</Name> <Condition>(fault.name Matches "VariableOfNonMsgType") </Condition> </Step> <Step> <Name>AM-CustomSetVariableErrorResponse</Name> <Condition>(fault.name = "SetVariableFailed")</Condition> </Step> <Condition>(assignmessage.failed = true) </Condition> </FaultRule>
Şemalar
Her politika türü bir XML şemasıyla (.xsd
) tanımlanır. Referans olması amacıyla politika şemaları
GitHub'da bulabilirsiniz.
İlgili konular
Çalışıyor Ataması politikasının örnekleri API Platformu örneklerinde bulunabilir.
target.url
etiketinin
ProxyEndpoint için bu Apigee Topluluğu makalesini inceleyin.
"Yol ayarla"yı görmek için ServiceCallPolicy'nin nasıl çalıştığını görmek için Apigee GitHub örneklerinde Örnek yaparak öğrenme başlıklı makaleye göz atın. Sadece depoyu klonlayıp konuyla ilgili talimatları uygulayın. Örnek, bir istek yolunu ayarlamak için Ataması politikasını kullanır. Ardından, harici bir hizmete istekte bulunmak için bir Hizmet Açıklama Metni Politikası kullanır.