当前位置: 首页 > 知识库问答 >
问题:

在openapi中自定义可分页显示

印辉
2023-03-14

我正在做一个spring boot项目,使用OPENAPI作为api文档的工具。

我试图用直观的输入(page-pageSize-sort)覆盖UI中可分页json对象的显示

   public OperationCustomizer parameterCustomizer() {
        return (Operation operation, HandlerMethod handlerMethod) -> {

            Parameter page = new Parameter()
                    .in(ParameterIn.QUERY.toString())
                    .schema(new IntegerSchema()._default(0))
                    .name("page")
                    .description("La page (0..N)")
                    .required(true);
            Parameter size = new Parameter()
                    .in(ParameterIn.QUERY.toString())
                    .schema(new IntegerSchema()._default(10))
                    .name("pageSize")
                    .description("Nombre de résultats par page")
                    .required(true);
            Parameter sort = new Parameter()
                    .in(ParameterIn.QUERY.toString())
                    .schema(new ArraySchema())
                    .name("sort")
                    .description("Critère de tri avec le format: property(,asc|desc). "
                            + "Tri par défaut: ascendant. "
                            + "Multiple critères de tri sont supportés.");
            if(operation.)
            operation.addParametersItem(page);
            operation.addParametersItem(size);
            operation.addParametersItem(sort);
            return operation;
        };
    }

这是可行的,但是参数页面、页面大小和排序被添加到所有方法中。我如何才能使这只适用于需要可分页的方法?

共有1个答案

欧阳君浩
2023-03-14

找到它!我必须在handlerMethod中检查参数类型中是否存在可分页类:

    public OperationCustomizer parameterCustomizer() {
        return (Operation operation, HandlerMethod handlerMethod) -> {
            if (Arrays.asList(handlerMethod.getMethod().getParameterTypes()).contains(Pageable.class)) {
                Parameter page = new Parameter()
                        .in(ParameterIn.QUERY.toString())
                        .schema(new IntegerSchema()._default(0))
                        .name("page")
                        .description("La page (0..N)")
                        .required(true);
                Parameter size = new Parameter()
                        .in(ParameterIn.QUERY.toString())
                        .schema(new IntegerSchema()._default(10))
                        .name("pageSize")
                        .description("Nombre de résultats par page")
                        .required(true);
                Parameter sort = new Parameter()
                        .in(ParameterIn.QUERY.toString())
                        .schema(new ArraySchema())
                        .name("sort")
                        .description("Critère de tri avec le format: property(,asc|desc). "
                                + "Tri par défaut: ascendant. "
                                + "Multiple critères de tri sont supportés.");
                operation.addParametersItem(page);
                operation.addParametersItem(size);
                operation.addParametersItem(sort);
            }
            return operation;
        };
    }
 类似资料:
  • 问题内容: Laravel 4.2 可以选择指定自定义视图,例如: 至少在 Laravel 5 中消失了。 有没有办法在 Laravel 5中 复制此行为? 问题答案: 而在 Laravel 4.2中, 我将使用: 在 Laravel 5中, 您可以复制以下内容: 现在,在包括视图,将有可用的分页方法,如,,,等。 您可以在http://laravel.com/docs/5.0/paginatio

  • 本文向大家介绍在ASP.NET Core中显示自定义的错误页面,包括了在ASP.NET Core中显示自定义的错误页面的使用技巧和注意事项,需要的朋友参考一下 前言 相信每位程序员们应该都知道在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白。 如果在 Startup.cs 的 Configure() 中加上 app.UseS

  • 我正在我的Wordpress公文包网站上工作,并为我的公文包部分创建了一个自定义帖子类型。当用户单击my portfolio链接时,会将他们带到archive-portfolio.php,其中显示我所有项目的图库;当用户单击项目时,会将他们带到single-portfolio.php,其中显示关联的项目。 一切都正常工作,样式正确,但现在我想让archive-portfolio.php上的gall

  • 在我正在构建的当前网站中,我构建了以下功能。 对当前形势给予更好的理解。 有一个叫做博客的页面。此页面显示列表中的所有博客(帖子)。所有职位的类别都有一个例外。用户可以选择一个类别。一旦用户单击它,用户将转到该类别。php并查看所有具有该特定类别的帖子。 我想创建相同的场景,但不是用自定义帖子类型。我有一个模板部分;offer-list-template.php offer-list-templa

  • 本文向大家介绍Django自定义分页效果,包括了Django自定义分页效果的使用技巧和注意事项,需要的朋友参考一下 分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该显示在页面上的数据在数据库表中的起始位置。 确定分页需求: 1. 每页显示的数据条数 2. 每页显示页号链接数 3. 上一页和下一页 4. 首页和末页 效果图: 首先,利用django内置的分页功能,写分页类

  • 本文向大家介绍Django如何自定义分页,包括了Django如何自定义分页的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Django自定义分页的具体代码,供大家参考,具体内容如下 稳扎稳打版 book.html 封装保存版 封装保存版 封装版使用指南 封装版对应的HTML参考 效果图如下:  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。