2

GET を使用するレガシー API を呼び出す必要があります。私の API プロキシは POST を使用します。

私はで使ってみましたAssignMessage<AssignTo type="request" createNew="false"/>

<Set> ... <Verb>GET</Verb>

ただし、ターゲット API では引き続き POST を実行します。

正しい変換方法は?ゲートウェイは自動的に POST フォーム パラメータを GET クエリ パラメータに変換しますか? message.queryparamGET と POST の両方で同じですか?

4

2 に答える 2

4

動詞を からPOSTに変換する場合GET、ポリシーはフォーム パラメータをクエリ パラメータに自動的に変換しません。メッセージをさらに操作するには、ポリシーの<Add>および/または<Remove>機能を使用する必要があります。formparams を参照して、queryparams を追加するポリシーAssignMessageでの使用例:AssignMessage

<Add>
    <QueryParams>
        <QueryParam name="q1">{request.formparam.q1}</QueryParam>
    </QueryParams>
</Add>

また、あなたの質問では、API プロキシがメソッドを使用してリクエストを受け入れると述べましたPOST。次に、設定するポリシーがありますGET

<Set> ... <Verb>GET</Verb>

ただし、ターゲット API で GET を実行します。

どうしたの?それはあなたが期待していることではありませんか?リクエストは として Apigee API プロキシに入りPOST、プロキシはメソッド(動詞)を に変換し、GETを使用してリクエストをバックエンドのレガシー API に送信しますGET

注: <AssignTo>AssignMessage ではオプションです。メソッドが適切に設定されていない場合は、これを省略してみてください。存在しない場合、フローの現在のポイントにあるメッセージが変更されます。

于 2014-01-21T16:55:55.463 に答える