0

これは簡単です<URL>。Apigee サービス コールアウト(SC)の要素を動的なものとして必要とします。

例えば:<URL>http://{dynamicURL}</URL>

どこdynamicURLで実行時に決定され、この値はリクエストごとに異なります。(ip:port/abc/orderid/1234) のような完全なターゲット URL が含まれます。

<HTTPTargetConnection>
<Properties />
<URL>http://{dynamicURL}</URL>
</HTTPTargetConnection>

これらを試しました:

  • JS ポリシーservicecallout.{scpolicyname}.target.urlで、コンテキストに設定してみました。この場合、ダイナミックのみip:portが送信されます。URI がありません/abc/orderid/1234

  • ポリシーでヘッダーを作成し、AssignMessage$ を前に付けて request.header.name, {request.header.name} のように SC URL 要素で使用しようとしました。

  • ポリシーでは、変数を作成し、フロントAssignMessageのように SC で使用してみました。{dynamicURL}$

これは一般的なユースケースであり、簡単な方法があるはずです。これについてあなたの助けが必要です。

ありがとう、

ソム

4

2 に答える 2

1

ServiceCallout ポリシーと AssignMessage ポリシーを組み合わせて使用​​できます。

ip:portServiceCallout ポリシー自体で設定できます。あなたが指摘したように、これを の要素<URL>http://{dynamicURL}</URL>に設定します。<HTTPTargetConnection>

<Path>残りの URI については、AssignMessage ポリシー要素を使用できます。次に例を示します。

<AssignMessage enabled="true" continueOnError="false" async="false" name="GenerateAuthorizationPayload">
    <FaultRules/>
    <Properties/>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <AssignTo createNew="true" type="request"/>
    <Set>
    <Payload contentType="text/xml">
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="urn:sample">
           <soapenv:Header/>
           <soapenv:Body>
              <v1:Login/>
           </soapenv:Body>
        </soapenv:Envelope>
    </Payload>
    <Path>/abc/orderid/1234</Path>
    <Verb>POST</Verb>
    </Set>
</AssignMessage>

柔軟性が必要な場合{variable}は、タグの内側に配置することもできます。<Path>

ダイナミック を取得するのは、これら 2 つのポリシーの組み合わせですip:port/path

于 2014-08-10T16:56:18.243 に答える
0

ターゲット サーバーの使用を検討してください。それはよりクリーンで、あなたが説明した目的のために特別に設計されています。この回答の詳細。

于 2014-08-10T16:30:44.867 に答える