diff --git a/springdoc-openapi-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java b/springdoc-openapi-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java index 6be158bf8..76c2ac579 100644 --- a/springdoc-openapi-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java +++ b/springdoc-openapi-common/src/main/java/org/springdoc/core/customizers/DataRestDelegatingMethodParameterCustomizer.java @@ -141,7 +141,7 @@ public ParameterIn in() { @Override public String description() { - return parameter.description(); + return getDescription(parameterName, parameter.description()); } @Override @@ -705,6 +705,20 @@ else if (isSpringDataWebPropertiesPresent()) return name; } + /** + * Gets description. + * + * @param parameterName the parameter name + * @param originalDescription the original description + * @return the description + */ + private String getDescription(String parameterName, String originalDescription) { + if ("page".equals(parameterName) && isSpringDataWebPropertiesPresent() && + optionalSpringDataWebPropertiesProvider.get().getSpringDataWebProperties().getPageable().isOneIndexedParameters()) + return "One-based page index (1..N)"; + return originalDescription; + } + /** * Gets default value. * @@ -742,6 +756,8 @@ else if (isSpringDataWebPropertiesPresent()) case "page": if (pageableDefault != null) defaultValue = String.valueOf(pageableDefault.page()); + else if (isSpringDataWebPropertiesPresent() && optionalSpringDataWebPropertiesProvider.get().getSpringDataWebProperties().getPageable().isOneIndexedParameters()) + defaultValue = "1"; else defaultValue = defaultSchemaVal; break; diff --git a/springdoc-openapi-data-rest/src/test/java/test/org/springdoc/api/app14/SpringDocApp14Test.java b/springdoc-openapi-data-rest/src/test/java/test/org/springdoc/api/app14/SpringDocApp14Test.java index 42f34a86e..55383dc30 100644 --- a/springdoc-openapi-data-rest/src/test/java/test/org/springdoc/api/app14/SpringDocApp14Test.java +++ b/springdoc-openapi-data-rest/src/test/java/test/org/springdoc/api/app14/SpringDocApp14Test.java @@ -43,6 +43,7 @@ @TestPropertySource(properties = { "spring.data.web.pageable.default-page-size=25", "spring.data.web.pageable.page-parameter=pages", "spring.data.web.pageable.size-parameter=sizes", + "spring.data.web.pageable.one-indexed-parameters=true", "spring.data.web.sort.sort-parameter=sorts" }) @EnableAutoConfiguration(exclude = { RepositoryRestMvcAutoConfiguration.class, SpringDocDataRestConfiguration.class diff --git a/springdoc-openapi-data-rest/src/test/resources/results/app14.json b/springdoc-openapi-data-rest/src/test/resources/results/app14.json index 721adbfc0..e2b4a7fab 100644 --- a/springdoc-openapi-data-rest/src/test/resources/results/app14.json +++ b/springdoc-openapi-data-rest/src/test/resources/results/app14.json @@ -21,12 +21,12 @@ { "name": "pages", "in": "query", - "description": "Zero-based page index (0..N)", + "description": "One-based page index (1..N)", "required": false, "schema": { "minimum": 0, "type": "integer", - "default": 0 + "default": 1 } }, {