Я пишу org.springframework.cloud.gateway.filter.GatewayFilter
(spring-cloud-gateway), который пытается использовать ответ, который следует определенному произвольному протоколу.Тело ответа имеет вид:
200\n
header1:value1\n
header2:header2\n
\n
<the actual body>
Идея состоит в том, что все метаданные ответа от нисходящего сервиса находятся в теле ответа (очень похоже на то, как конверт SOAP охватывает реальное тело).Клиент шлюза должен получить измененный развернутый ответ.
Я следовал инструкциям ModifyRequestBodyGatewayFilterFactory
и ModifyResponseBodyGatewayFilterFactory
, но я не думаю, что они подходят для моего использованияcase.
Я верю, что смогу добиться этого, вернув подкласс ServerHttpResponseDecorator
, но пока не могу понять, как приступить к реализации:
@Override
public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) {
// unwrap status code
// unwrap headers
// let it continue as usual
}