Skip to content

Commit 1da94a7

Browse files
committed
Merge remote-tracking branch 'origin/master' into used-merged-annotation-for-parameter
2 parents 0553f09 + f85603e commit 1da94a7

File tree

91 files changed

+3461
-1124
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+3461
-1124
lines changed

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,10 @@ This is a community-based project, not maintained by the Spring Framework Contri
4848
springdoc.swagger-ui.path=/swagger-ui.html
4949
```
5050

51-
## [Demo Spring Boot 2 webmvc with OpenAPI 3](https://springdoc-openapi-test-app2-silly-numbat.eu-de.mybluemix.net/).
52-
## [Demo Spring Boot 1 webmvc with OpenAPI 3](https://springdoc-openapi-test-app1-courteous-puku.eu-de.mybluemix.net/).
53-
## [Demo Spring Boot 2 webflux with OpenAPI 3](https://springdoc-openapi-test-app3-terrific-rabbit.eu-de.mybluemix.net/swagger-ui.html).
51+
## [Demo Spring Boot 2 Web MVC with OpenAPI 3](https://springdoc-openapi-test-app2-rested-ardvark.eu-de.mybluemix.net/).
52+
## [Demo Spring Boot 2 WebFlux with OpenAPI 3](https://springdoc-openapi-test-app3-generous-springhare.eu-de.mybluemix.net/swagger-ui.html).
53+
## [Demo Spring Boot 1 Web MVC with OpenAPI 3](https://springdoc-openapi-test-app1-exhausted-civet.eu-de.mybluemix.net/).
54+
## [Demo Spring Boot 2 WebFlux with Functional endpoints OpenAPI 3](https://springdoc-openapi-test-app4-happy-ostrich.eu-de.mybluemix.net/swagger-ui.html).
5455

5556
![Branching](https://springdoc.org/assets/images/pets.png)
5657

pom.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<parent>
1414
<groupId>org.springframework.boot</groupId>
1515
<artifactId>spring-boot-starter-parent</artifactId>
16-
<version>2.2.6.RELEASE</version>
16+
<version>2.3.0.RELEASE</version>
1717
</parent>
1818

1919
<licenses>
@@ -26,7 +26,7 @@
2626
<developers>
2727
<developer>
2828
<name>Badr NASS</name>
29-
<email>[email protected]</email>
29+
<email>[email protected]</email>
3030
<organization>BADR</organization>
3131
<organizationUrl>https://springdoc.github.io/springdoc-openapi/
3232
</organizationUrl>
@@ -61,6 +61,7 @@
6161
<module>springdoc-openapi-data-rest</module>
6262
<module>springdoc-openapi-security</module>
6363
<module>springdoc-openapi-groovy</module>
64+
<module>springdoc-openapi-hateoas</module>
6465
</modules>
6566

6667
<properties>
@@ -72,7 +73,7 @@
7273
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
7374
<nexus-staging-maven-plugin>1.6.8</nexus-staging-maven-plugin>
7475
<swagger-api.version>2.1.2</swagger-api.version>
75-
<swagger-ui.version>3.25.2</swagger-ui.version>
76+
<swagger-ui.version>3.25.3</swagger-ui.version>
7677
<spring-security-oauth2.version>2.3.8.RELEASE</spring-security-oauth2.version>
7778
<classgraph.version>4.8.44</classgraph.version>
7879
</properties>

springdoc-openapi-common/src/main/java/org/springdoc/api/AbstractOpenApiResource.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@
6767
import org.springdoc.core.annotations.RouterOperations;
6868
import org.springdoc.core.customizers.OpenApiCustomiser;
6969
import org.springdoc.core.customizers.OperationCustomizer;
70-
import org.springdoc.core.models.RouterFunctionData;
71-
import org.springdoc.core.models.RouterOperation;
72-
import org.springdoc.core.visitor.AbstractRouterFunctionVisitor;
70+
import org.springdoc.core.fn.AbstractRouterFunctionVisitor;
71+
import org.springdoc.core.fn.RouterFunctionData;
72+
import org.springdoc.core.fn.RouterOperation;
7373

7474
import org.springframework.context.ApplicationContext;
7575
import org.springframework.core.annotation.AnnotatedElementUtils;
@@ -346,9 +346,9 @@ protected void getRouterFunctionPaths(String beanName, AbstractRouterFunctionVis
346346
else
347347
routerOperationList.addAll(Arrays.asList(routerOperations.value()));
348348
if (routerOperationList.size() == 1)
349-
calculatePath(routerOperationList.stream().map(routerOperation -> new org.springdoc.core.models.RouterOperation(routerOperation, routerFunctionVisitor.getRouterFunctionDatas().get(0))).collect(Collectors.toList()));
349+
calculatePath(routerOperationList.stream().map(routerOperation -> new RouterOperation(routerOperation, routerFunctionVisitor.getRouterFunctionDatas().get(0))).collect(Collectors.toList()));
350350
else {
351-
List<org.springdoc.core.models.RouterOperation> operationList = routerOperationList.stream().map(org.springdoc.core.models.RouterOperation::new).collect(Collectors.toList());
351+
List<RouterOperation> operationList = routerOperationList.stream().map(RouterOperation::new).collect(Collectors.toList());
352352
mergeRouters(routerFunctionVisitor.getRouterFunctionDatas(), operationList);
353353
calculatePath(operationList);
354354
}
@@ -426,8 +426,8 @@ protected Operation customiseOperation(Operation operation, HandlerMethod handle
426426
return operation;
427427
}
428428

429-
protected void mergeRouters(List<RouterFunctionData> routerFunctionDatas, List<org.springdoc.core.models.RouterOperation> routerOperationList) {
430-
for (org.springdoc.core.models.RouterOperation routerOperation : routerOperationList) {
429+
protected void mergeRouters(List<RouterFunctionData> routerFunctionDatas, List<RouterOperation> routerOperationList) {
430+
for (RouterOperation routerOperation : routerOperationList) {
431431
if (StringUtils.isNotBlank(routerOperation.getPath())) {
432432
// PATH
433433
List<RouterFunctionData> routerFunctionDataList = routerFunctionDatas.stream()
@@ -565,7 +565,7 @@ private void fillParametersList(Operation operation, Map<String, String> queryPa
565565
}
566566
}
567567

568-
private void fillRouterOperation(RouterFunctionData routerFunctionData, org.springdoc.core.models.RouterOperation routerOperation) {
568+
private void fillRouterOperation(RouterFunctionData routerFunctionData, RouterOperation routerOperation) {
569569
if (ArrayUtils.isEmpty(routerOperation.getConsumes()))
570570
routerOperation.setConsumes(routerFunctionData.getConsumes());
571571
if (ArrayUtils.isEmpty(routerOperation.getProduces()))

springdoc-openapi-common/src/main/java/org/springdoc/core/GenericParameterBuilder.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,17 @@ Schema calculateSchema(Components components, ParameterInfo parameterInfo, Reque
221221
schemaN = parameterInfo.getParameterModel().getSchema();
222222

223223
if (requestBodyInfo != null) {
224+
if (schemaN != null && StringUtils.isEmpty(schemaN.getDescription()) && parameterInfo.getParameterModel() != null) {
225+
String description = parameterInfo.getParameterModel().getDescription();
226+
if (schemaN.get$ref() != null && schemaN.get$ref().contains(AnnotationsUtils.COMPONENTS_REF)) {
227+
String key = schemaN.get$ref().substring(21);
228+
Schema existingSchema = components.getSchemas().get(key);
229+
existingSchema.setDescription(description);
230+
}
231+
else
232+
schemaN.setDescription(description);
233+
}
234+
224235
if (requestBodyInfo.getMergedSchema() != null) {
225236
requestBodyInfo.getMergedSchema().addProperties(paramName, schemaN);
226237
schemaN = requestBodyInfo.getMergedSchema();

springdoc-openapi-common/src/main/java/org/springdoc/core/RequestBodyBuilder.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -156,22 +156,17 @@ public void calculateRequestBodyInfo(Components components, MethodAttributes met
156156
private RequestBody buildRequestBody(RequestBody requestBody, Components components,
157157
MethodAttributes methodAttributes,
158158
ParameterInfo parameterInfo, RequestBodyInfo requestBodyInfo) {
159-
if (requestBody == null)
159+
if (requestBody == null) {
160160
requestBody = new RequestBody();
161-
162-
if (parameterInfo.getParameterModel() != null) {
163-
io.swagger.v3.oas.models.parameters.Parameter parameter = parameterInfo.getParameterModel();
164-
if (StringUtils.isNotBlank(parameter.getDescription()))
165-
requestBody.setDescription(parameter.getDescription());
166-
requestBody.setRequired(parameter.getRequired());
161+
requestBodyInfo.setRequestBody(requestBody);
167162
}
168163

169164
if (requestBody.getContent() == null) {
170165
Schema<?> schema = parameterBuilder.calculateSchema(components, parameterInfo, requestBodyInfo,
171166
methodAttributes.getJsonViewAnnotationForRequestBody());
172167
buildContent(requestBody, methodAttributes, schema);
173168
}
174-
else if (requestBodyInfo.getRequestBody() != null) {
169+
else {
175170
Schema<?> schema = parameterBuilder.calculateSchema(components, parameterInfo, requestBodyInfo,
176171
methodAttributes.getJsonViewAnnotationForRequestBody());
177172
mergeContent(requestBody, methodAttributes, schema);

springdoc-openapi-common/src/main/java/org/springdoc/core/converters/PolymorphicModelConverter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import io.swagger.v3.core.converter.AnnotatedType;
3131
import io.swagger.v3.core.converter.ModelConverter;
3232
import io.swagger.v3.core.converter.ModelConverterContext;
33+
import io.swagger.v3.core.util.AnnotationsUtils;
3334
import io.swagger.v3.core.util.Json;
3435
import io.swagger.v3.oas.models.media.ComposedSchema;
3536
import io.swagger.v3.oas.models.media.Schema;
@@ -52,7 +53,7 @@ private Schema composePolymorphicSchema(AnnotatedType type, Schema schema, Colle
5253
.map(s -> (ComposedSchema) s)
5354
.filter(s -> s.getAllOf() != null)
5455
.filter(s -> s.getAllOf().stream().anyMatch(s2 -> ref.equals(s2.get$ref())))
55-
.map(s -> new Schema().$ref("#/components/schemas/" + s.getName()))
56+
.map(s -> new Schema().$ref(AnnotationsUtils.COMPONENTS_REF + s.getName()))
5657
.collect(Collectors.toList());
5758
if (composedSchemas.isEmpty()) return schema;
5859

springdoc-openapi-common/src/main/java/org/springdoc/core/converters/MonetaryAmount.java renamed to springdoc-openapi-common/src/main/java/org/springdoc/core/converters/models/MonetaryAmount.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*
1919
*/
2020

21-
package org.springdoc.core.converters;
21+
package org.springdoc.core.converters.models;
2222

2323
import java.math.BigDecimal;
2424

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*
1919
*/
2020

21-
package org.springdoc.data.rest.converters;
21+
package org.springdoc.core.converters.models;
2222

2323
import java.util.List;
2424
import java.util.Objects;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*
1919
*/
2020

21-
package org.springdoc.data.rest.converters;
21+
package org.springdoc.core.converters.models;
2222

2323
import java.lang.annotation.ElementType;
2424
import java.lang.annotation.Retention;
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,12 @@
1818
*
1919
*/
2020

21-
package org.springdoc.core.visitor;
21+
package org.springdoc.core.fn;
2222

2323
import java.util.ArrayList;
2424
import java.util.List;
2525
import java.util.Set;
2626

27-
import org.springdoc.core.models.RouterFunctionData;
28-
2927
import org.springframework.http.HttpHeaders;
3028
import org.springframework.http.HttpMethod;
3129

0 commit comments

Comments
 (0)