Apache Camel - 传递错误 400 json 而不是抛出自己的异常
Apache Camel - pass on Error 400 json instead of throwing its own exception
我正在使用 Apache Camel 公开内部 REST 端点。
内部端点 returns 代码 400(错误请求),以及有用的 JSON 和错误详细信息。
默认情况下,Camel 通过返回代码 500 做出反应。如何让 Camel 传递代码 400 及其附带的 JSON 正文?
骆驼路线:
rest("/internal")
.post("/getServiceState")
.to("direct:getServiceState");
from("direct:getServiceState")
.to("http://endpoint/getServiceState" + "?bridgeEndpoint=true");
使用 okStatusCodeRange 参数,您可以像应用程序没有收到错误一样进行开发。
.to("http://endpoint/getServiceState" + "?bridgeEndpoint=true&okStatusCodeRange=200-299,400-501").process(e-> {// do something })
另外,可以根据传入的状态码的状态,使用cbr来进行动作
.choice().when().simple("${header.CamelHttpResponseCode} == '400'")
.unmarshal().json(MigrosErrorResponse.class).otherwise().process(e-> {})
我正在使用 Apache Camel 公开内部 REST 端点。 内部端点 returns 代码 400(错误请求),以及有用的 JSON 和错误详细信息。
默认情况下,Camel 通过返回代码 500 做出反应。如何让 Camel 传递代码 400 及其附带的 JSON 正文?
骆驼路线:
rest("/internal")
.post("/getServiceState")
.to("direct:getServiceState");
from("direct:getServiceState")
.to("http://endpoint/getServiceState" + "?bridgeEndpoint=true");
使用 okStatusCodeRange 参数,您可以像应用程序没有收到错误一样进行开发。
.to("http://endpoint/getServiceState" + "?bridgeEndpoint=true&okStatusCodeRange=200-299,400-501").process(e-> {// do something })
另外,可以根据传入的状态码的状态,使用cbr来进行动作
.choice().when().simple("${header.CamelHttpResponseCode} == '400'")
.unmarshal().json(MigrosErrorResponse.class).otherwise().process(e-> {})