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

Springdoc数据REST忽略覆盖可分页参数名称

锺离嘉容
2023-03-14

在我的申请中。属性,我已覆盖可分页参数的名称:

spring.data.web.pageable.page-parameter=offset
spring.data.web.pageable.size-parameter=limit

但是当我去Swagger UI检查我的Swagger留档时,没有使用新的name参数:

这是我的职能部门的签名:

@PageableAsQueryParam
    @Operation(summary = "")
    @ApiResponses(value = {
            @ApiResponse(responseCode = "200", description = "",
                    content = @Content(mediaType = "application/json", schema = @Schema(implementation = CustomPage.class))),
            @ApiResponse(responseCode = "404", description = "", content = @Content)
    })
    @GetMapping(path = "/{version}/foo", produces = MediaType.APPLICATION_JSON_VALUE)
    @Override
    public ResponseEntity<CustomPage<ReducedAsset>> getAll(@ParameterObject Pageable pageable,
                                                           @Parameter(description = "Version from which to get the list")
                                                           @PathVariable String version)

如何将新名称绑定到文档?我可以更改默认描述吗?

谢谢你的回答!

共有1个答案

秦钟展
2023-03-14

简单的

package com.example.springdocdatarest;

import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Schema;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Parameter(in = ParameterIn.QUERY,
     description = "Zero-based page index (0..N)",
     name = "offset", // !
     schema = @Schema(type = "integer", defaultValue = "0"))
@Parameter(in = ParameterIn.QUERY,
     description = "The size of the page to be returned",
     name = "limit", // !
     schema = @Schema(type = "integer", defaultValue = "20"))
@Parameter(in = ParameterIn.QUERY,
     description = "Sorting criteria in the format: property(,asc|desc). "
    + "Default sort order is ascending. " + "Multiple sort criteria are supported.",
     name = "sort",
     array = @ArraySchema(schema = @Schema(type = "string")))
public @interface MyPageableAsQueryParam {

}
  1. 抄袭https://github.com/springdoc/springdoc-openapi/blob/master/springdoc-openapi-common/src/main/java/org/springdoc/core/converters/models/PageableAsQueryParam.java
  2. 替换为我们想要的值。(另附说明;)

使用它:

@com.example.springdocdatarest.MyPageableAsQueryParam
@Operation(summary = "") // ...
@GetMapping ...

还有:

spring.data.rest.page-param-name=foo
spring.data.rest.limit-param-name=bar
spring.data.rest...

“这些”的spring数据rest属性。

 类似资料:
  • Spring Boot 2.0.1.RELEASE项目包含Spring Data JPA和Spring Data REST。似乎忽略了RESTendpoint中的<code>sort</code>参数(但在单元测试中使用相同的存储库方法)。存储库如下: } 实体(已编辑)如下: 当我尝试使用导出的RESTendpoint调用它时,例如: http://localhost:8080/api/v1/o

  • 如果没有声明相应的值,是否有可能动态忽略一些可选的参数?

  • 我有一个存储库,其findAll方法用标记。我正在将生成的SQL打印到日志中,我可以看到当直接在Java中使用时,它会生成正确的连接选择(即)。但是当我通过REST调用它时,这种情况不会发生。我要么得到一个异常,BC。懒加载代理不能序列化,或者如果我添加杰克逊-数据库-hibernate5,我可以看到额外的查询。 我尝试在这里生成最小复制:https://github.com/cptwunderl

  • 我已经编写了许多通过RESTAPI调用进行通信的服务。这些服务可以配置为使用HTTP或HTTPS。任何给定的客户端都具有定义到服务器的连接的安全配置。“默认”配置属性由应用程序中的值设置。yml在这一点上效果很好。 然而,我逐渐意识到,这在更现实的情况下并不适用。问题是,我试图设置特定的参数,例如启动客户端时的服务器主机/端口,而我设置的值被忽略。 例如: 服务A(客户端)将出于某种目的与服务B(

  • 问题内容: 我刚刚从jQuery 1.3.2更新到1.4.3,并且在发出AJAX DELETE请求时看到了一些新行为。由于某种原因,在我的参数中传递的数据没有发送到服务器。例如: 最终向发送了DELETE请求,没有其他数据。但是,这种类型的调用可以很好地传递参数: 有没有其他人看到过类似的行为?有没有理由不再起作用(即:是设计使然,还是错误)?关于如何使其运作的任何建议? 此外,如果有人想知道为什

  • 我正在尝试在我的 REST 服务中实现分页。 取1: 这是SpringFox / Swagger中的一个已知错误,Swagger页面显示了错误的参数名。另外,我只想要佩奇 第二次: 这给了我正确的参数,但是它不允许我设置参数描述或示例值。 取3: 这还有另一个错误,在这个错误中,例如="0"不起作用,但是除了一个有效的值之外,所有其他值都有效,哈哈。如果我将数据类型更改为字符串,那么它将显示0示例