无法在使用带批注的Spring的OpenApi中将标头设置为可选

无法在使用带批注的Spring的OpenApi中将标头设置为可选,spring,openapi,Spring,Openapi,我正在使用Java11.0.2、SpringBoot2.2.6和SpringOpenAPI核心1.1.49创建一个使用注释的OpenApi文档 在请求在控制器中创建商户期间,我需要有一个自定义标头属性,但它必须是可选的。根据Parameter对象的Swagger文档,字段“required”(确定此参数是否为必填项。如果参数位置为“path”,则此属性为必填项,且其值必须为true。否则,可能会包含此属性,且其默认值为false。)默认情况下,标头为false,但在下面,您可以看到,出于某种原因

我正在使用Java11.0.2、SpringBoot2.2.6和SpringOpenAPI核心1.1.49创建一个使用注释的OpenApi文档

在请求在控制器中创建商户期间,我需要有一个自定义标头属性,但它必须是可选的。根据Parameter对象的Swagger文档,字段“required”(确定此参数是否为必填项。如果参数位置为“path”,则此属性为必填项,且其值必须为true。否则,可能会包含此属性,且其默认值为false。)默认情况下,标头为false,但在下面,您可以看到,出于某种原因,这是正确的(尽管如此,我将此选项配置为“false”)

Java-partot控制器方法


public ResponseDto create(@Parameter(in=ParameterIn.HEADER,required=false,schema=@schema(type=“string”,format=“uuid”),name=“X-Request-Correlation-Id”,“X-Request-Correlation-Id”)@Nullable String headerXRequestId,…找到了解决方案-问题不在OpenApi annotation@Parameter中,而是在Spring binding annotation@RequestHeader中,它将header字段绑定到方法参数。@RequestHeader还有字段“required”,默认情况下,它设置为“true”它覆盖了@Parameter中的一个。因此,解决方案是以下语法-@RequestHeader(name=“X-Request-Correlation-Id”,required=false)