如何注释一个外部模型的请求体?

时间:2018-04-26 18:25:12

标签: java annotations swagger openapi

我正在使用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);
}

0 个答案:

没有答案