如何注释作为 oneOf 外部模型的请求正文?

Sam*_*awa 7 java annotations swagger openapi

我正在使用 Swagger/OpenAPI(版本 1.5.18 - 我在 v3 OAS 2.0.1 中添加以尝试 oneOf/anyOf)来记录用 RESTeasy + Jackson 在 Java 中制作的 API。其中一个端点将 aString作为请求主体,然后将其转换为多个类之一。文档需要显示这些模型中的每一个,以便用户可以看到它们。这些模型是在另一个项目中定义的。有没有办法通过注释来做到这一点?我发现的最接近的事情是添加,@RequestBody(content=@Content(schema=@Schema(oneOf= {class1.class, class2.class})))但无法使用它来添加模型。我还尝试使用@ApiModel(subTypes={class1.class, class2.class}. 由于代码可维护性,我不想为每个对象类型添加额外的端点。

我的问题是:是否可以通过注释添加模型,同时将输入类型保留为String

这是相关的代码:

@POST
@Path("/{filetype}/new")
@Consumes("application/json")   
public Response writeFile(
    @ApiParam(required=true, allowableValues = "class1, class2") @PathParam("filetype") String filetype, 
    @RequestBody(content=@Content(schema=@Schema(oneOf= {class1.class, class2.class}))) String inputFile
    ) {
        return validateFileAndSaveToServer(filetype, inputFile);
}
Run Code Online (Sandbox Code Playgroud)