我正在使用Swagger / OpenAPI(版本1.5.18 - 在v3 OAS 2.0.1中添加以尝试oneOf / anyOf)来记录使用RESTeasy + Jackson在Java中创建的API。其中一个端点接受String
作为请求主体,然后将其转换为几个类之一。文档需要显示每个模型,以便用户可以看到它们。模型在另一个项目中定义。有没有办法通过注释来做到这一点?我发现的最接近的事情是添加@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);
}