如何在 Spring WebFlux 中使用内容协商格式参数?

How to use content negotation format parameter in Spring WebFlux?

spring.mvc.contentnegotiation.favor-parameter=true
spring.mvc.contentnegotiation.parameter-name=format

如何使用 spring webflux 中的内容协商功能?

所以 /request?format=jsonAccept header 旁边是可能的。

它的工作原理如下,但不知道那是正确的方法:

@Configuration(proxyBeanMethods = false)
public class ReactiveWebFluxConfigurer {
    @Value("${spring.mvc.contentnegotiation.parameter-name}")
    private String formatName;

    @Bean
    public WebFluxConfigurer webFluxConfigurer() {
        return new WebFluxConfigurer() {
            @Override
            public void configureContentTypeResolver(RequestedContentTypeResolverBuilder builder) {
                builder.parameterResolver().parameterName(formatName);

                //if you want, add additional fallback to Accept header if format param is missing
                builder.headerResolver();
            }
        };
    }
}