是否可以将正则表达式与 OpenApi / Swagger @RequestParam 一起使用?

Is it possible to use regular expressions with OpenApi / Swagger @RequestParam?

我想为要用 Swagger 记录的请求参数定义一个正则表达式。事实上,我想定义文件名的格式。这可能使用 Spring 中的注释(引导)吗?
这里:

   @Bean
    default OpenAPI customOpenApi() {

        return new OpenAPI()
            .info(new Info()
                .title("")
                .version("1.0")
                .description(""))
            .components(new Components()
                    .addParameters(
                            "api-version", new io.swagger.v3.oas.models.parameters.Parameter()
                            .name("api-version")
                            .required(Boolean.TRUE)
                            .allowEmptyValue(Boolean.FALSE)
                            .description("")
                            .in("header")
                            .schema(new io.swagger.v3.oas.models.media.Schema<String>().type("string").example("1.0.0"))
                    )
                    .addParameters(
                            "file-name", new io.swagger.v3.oas.models.parameters.Parameter()
                            .name("file-name")
                            .required(Boolean.TRUE)
                            .allowEmptyValue(Boolean.TRUE)
                            .description("Filename of the file to be imported in the following format: " +
                        "<ul>" +
                        " <li><b>yyyyMMdd_DocumentType_senderID_rexeiverID_xxx_version.xml</b></li>" +
                        "</ul>")
                            .in("header")
                            .schema(new io.swagger.v3.oas.models.media.Schema<Integer>().type("string").example("20210228_A14_123456789_987654321_xxx_123.xml"))
                    )
            );
    }

或此处:

    ResponseEntity<ResponseBody> postData(
        @RequestHeader HttpHeaders headers,
        @RequestAttribute(name = REQUST_ID, required = false) String requestId,
        @Parameter(name = API_VERSION_HEADER_PARAMETER) @RequestHeader(name = API_VERSION_HEADER_PARAMETER) String apiVersion,
        @Parameter(name = FILENAME_HEADER_PARAMETER) @RequestHeader(name = FILENAME_HEADER_PARAMETER) String fileName,

        @Validated @RequestBody RestRequestBody body
    );

我假设您使用的是 OpenAPI 3

您可以使用这样的模式:

ssn:
  type: string
  pattern: '^\d{3}-\d{2}-\d{4}$'

来源:https://swagger.io/docs/specification/data-models/data-types/#pattern

在代码中看起来像这样:

ResponseEntity<Order> getOrderById(@Pattern(regexp="^\d{3}-\d{2}-\d{4}$") @ApiParam(value = "ID of pet that needs to be fetched",required=true) @PathVariable("orderId") String orderId);