フォーラムスレッドは便利です。また、貼り付けた文字列は、マッピングで返すことができたとしても、有効なXMLではないことに注意してください。
とにかく私は同様の問題を抱えていましたが、これは私がそれを解決した方法です(上記フォーラムリンクディスカッションと非常によく似ています)。
- ラムダがXMLに変換できるものを返すようにしてください。私は、JSONでの実際の応答XML文字列をラップしている
def lambda_handler(event, context): resp = {"body" : "<FooResult xmlns='http://someorg.com/xml/1.0'><Message>All is well</Message></FooResult>"} return resp
注:お使いのラムダはPythonであれば、あなたのハンドラは、このようなものである可能性があります。このjson要素の鍵は "body"です。そのキーの値は、二重引用符で囲まれた有効なXML文字列です。
- APIゲートウェイのインテグレーションレスポンスで応答ボディマッピングテンプレートを追加します。これは、テンプレートの内容でなければなりません:
#set($inputRoot = $input.path('$')) $inputRoot.body
このテンプレートは、あなたのJSONの重要な「身体」に有効なXML値を返します。
これで、メソッド応答セクションにContent-Typeヘッダーとapplication/xmlの応答本文を追加するだけで、有効なXMLを取得する必要があります。
XMLを受け入れるようにクライアントのacceptヘッダーを設定することを忘れないでください。 Cheers
あなたのXML文字列がラムダによってJSON文字列としてシリアル化されているようです。それは(https://forums.aws.amazon.com/thread.jspa?messageID=649836のように)文字列を抽出するための出力マッピングテンプレートが必要です。すでに物事がある場合は、コードを提示してください。 –