Как аннотировать тело запроса, которое является одной из внешних моделей? - PullRequest
0 голосов
/ 26 апреля 2018

Я работаю над документированием API, созданного с помощью RESTeasy + Jackson в Java, используя Swagger / OpenAPI (версия 1.5.18 - я добавил в v3 OAS 2.0.1, чтобы попробовать oneOf / anyOf). Одна из конечных точек принимает 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);
}
...