例外処理で同じプロセスで捕捉したすべての例外を処理します。これはapikitによって生成されたものです。私たちはまずカスタムコンポーネントをたくさん送ってから、jsonレスポンスを生成します。 DataWeaveの応答では、同じstatusCodeを設定します。しかし、statusCodeは検索可能な変数ではないようです。正しいですか、それを取得する良い方法がありますか?グッドMuleのApiKitマッピングからstatusCodeを取得する方法
<apikit:mapping-exception-strategy xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" name="svc0031_hotel-apiKitGlobalExceptionMapping">
<apikit:mapping statusCode="504">
<apikit:exception value="org.mule.api.transformer.TransformerMessagingException"/>
<flow-ref name="svc0031_manageErrors" doc:name="Manage Error"/>
</apikit:mapping>
\t \t <apikit:mapping statusCode="404">
<apikit:exception value="org.mule.api.transformer.TransformerMessagingException"/>
<flow-ref name="svc0031_manageErrors" doc:name="Manage Error"/>
</apikit:mapping>
</apikit:mapping-exception-strategy>
<sub-flow name="svc0031_manageErrors">
<set-payload value="#[groovy:message.exceptionPayload.rootException.message]" doc:name="Set BIP Payload"/>
<custom-transformer class="se.zystems.baseline.BaselineLogging" doc:name="Log BIP Outgoing">
<spring:property name="Level" value="ERROR"/>
<spring:property name="ObjectId" value="CatchErrors"/>
<spring:property name="TransactionStatus" value="failed"/>
</custom-transformer>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
status : 400,
message : payload,
code : 42,
more_info :"https://anypoint.mulesoft.com/apiplatform/nordic-choice-hotels"
}]]></dw:set-payload>
</dw:transform-message>
<logger level="INFO" doc:name="Logger"/>
</sub-flow>
ありがとうございますが、apikit:mapping statusCode = "value"はmessage.inboundProperties ['http.status']に渡されないため、後でこのフローで使用することはできません。 –
あなたはほとんど正しいですが、私の答えを確認してください。もう一度ありがとう! –