У меня есть разные методы потока для POST
, PUT
, PATCH
и DELETE
, например
private IntegrationFlow myChannelPost() {
return f -> f
.handle(Http.outboundGateway("url")
.uriVariable("url", m -> m.getHeaders().get("url"))
.httpMethod(HttpMethod.POST).mappedRequestHeaders("*")
.headerMapper(myHeaderMapper()).expectedResponseType(String.class))
.route("nextChannel.input");
}
private IntegrationFlow myChannelPut() {
return f -> f
.handle(Http.outboundGateway("url")
.uriVariable("url", m -> m.getHeaders().get("url"))
.httpMethod(HttpMethod.PUT).mappedRequestHeaders("*")
.headerMapper(myHeaderMapper()).expectedResponseType(String.class))
.route("nextChannel.input");
}
private IntegrationFlow myChannelPatch() {
return f -> f
.handle(Http.outboundGateway("url")
.uriVariable("url", m -> m.getHeaders().get("url"))
.httpMethod(HttpMethod.PATCH).mappedRequestHeaders("*")
.headerMapper(myHeaderMapper()).expectedResponseType(String.class))
.route("nextChannel.input");
}
private IntegrationFlow myChannelDelete() {
return f -> f
.handle(Http.outboundGateway("url")
.uriVariable("url", m -> m.getHeaders().get("url"))
.httpMethod(HttpMethod.DELETE).mappedRequestHeaders("*")
.headerMapper(myHeaderMapper()).expectedResponseType(String.class))
.route("nextChannel.input");
}
Они содержат почти один и тот же код четыре раза. Можно ли иметь один метод, который динамически обрабатывает эти четыре случая?