Как указать пользовательское имя для параметров типа объекта в Swagger

#spring-mvc #swagger #swagger-ui #openapi #openapi-generator

Вопрос:

У меня есть следующий фрагмент кода:

     @RequestMapping(method = RequestMethod.GET, produces = { SupportedMediaTypes.APPLICATION_VND_DCTM_JSON_STRING,
        MediaType.APPLICATION_ATOM_XML_VALUE, MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE })
    @ResponseBody
    @ResponseStatus(HttpStatus.OK)
    @ApiOperation(value = "Search for Registration Forms")
    public AtomFeed getRegistrationFormsCollection(
        @ApiParam(type = "String", value = "The name of the Repository", example = "TestRepo") @PathVariable("repositoryName") String repositoryName,
        @TypedParam final CollectionParam param, @ApiIgnore @RequestUri final UriInfo uriInfo) throws Exception {
..
 

Выдержка из класса CollectionParam:

 public class CollectionParam {

    @TypedParam
    private PagingParam pagingParam;
    @QueryParam(name = "sort")
    private SortSpec sortSpec;
 

а это и есть PagingParam:

 public class PagingParam {

    @QueryParam(name = "page")
    private int page;
    @QueryParam(name = "items-per-page")
    private int itemsPerPage;
    @QueryParam(name = "include-total")
    private boolean includeTotal;
...
 

Я использую OpenApi3, и пользовательский интерфейс Swagger отображается нормально. Тем не менее, я получаю это на странице пользовательского интерфейса. Я хочу, чтобы имена для них были includeTotal, itemsPerPage и страница (без добавленного к ним параметра страницы). Текущий запрос, который формируется, когда я нажимаю «Попробовать» и «Выполнить», содержит параметры с добавлением «pagingParam«, и, следовательно, эти параметры не выполняются.

Как я могу это сделать? Пожалуйста, предложите.