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)