Skip to content

Commit 06f8537

Browse files
author
springdoc
committed
Improve support of HttpEntity. fixes #280
1 parent 25434ee commit 06f8537

File tree

5 files changed

+32
-4
lines changed

5 files changed

+32
-4
lines changed

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.apache.commons.lang3.ArrayUtils;
1414
import org.apache.commons.lang3.StringUtils;
1515
import org.springframework.core.annotation.AnnotatedElementUtils;
16+
import org.springframework.http.HttpEntity;
1617
import org.springframework.http.HttpStatus;
1718
import org.springframework.http.MediaType;
1819
import org.springframework.http.ResponseEntity;
@@ -226,7 +227,7 @@ private Schema<?> calculateSchema(Components components, Type returnType, JsonVi
226227
}
227228
if (returnType instanceof ParameterizedType) {
228229
schemaN = calculateSchemaFromParameterizedType(components, (ParameterizedType) returnType, jsonView);
229-
} else if (ResponseEntity.class.getName().equals(returnType.getTypeName())) {
230+
} else if (ResponseEntity.class.getName().equals(returnType.getTypeName()) || HttpEntity.class.getName().equals(returnType.getTypeName())) {
230231
schemaN = AnnotationsUtils.resolveSchemaFromType(String.class, null, jsonView);
231232
}
232233
if (schemaN == null) {

springdoc-openapi-webflux-core/src/main/java/org/springdoc/core/ResponseBuilder.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import io.swagger.v3.oas.models.Components;
55
import io.swagger.v3.oas.models.media.ArraySchema;
66
import io.swagger.v3.oas.models.media.Schema;
7+
import org.springframework.http.HttpEntity;
78
import org.springframework.http.ResponseEntity;
89
import reactor.core.publisher.Flux;
910
import reactor.core.publisher.Mono;
@@ -41,7 +42,7 @@ protected Schema calculateSchemaFromParameterizedType(Components components, Par
4142
} else {
4243
schemaN = calculateFluxSchema(components, parameterizedType, jsonView);
4344
}
44-
} else if (ResponseEntity.class.getName().contentEquals(parameterizedType.getRawType().getTypeName())) {
45+
} else if (ResponseEntity.class.getName().contentEquals(parameterizedType.getRawType().getTypeName()) || HttpEntity.class.getName().contentEquals(parameterizedType.getRawType().getTypeName())) {
4546
schemaN = calculateSchemaParameterizedType(components, parameterizedType, jsonView);
4647
}
4748
return schemaN;

springdoc-openapi-webmvc-core/src/main/java/org/springdoc/core/ResponseBuilder.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.annotation.JsonView;
44
import io.swagger.v3.oas.models.Components;
55
import io.swagger.v3.oas.models.media.Schema;
6+
import org.springframework.http.HttpEntity;
67
import org.springframework.http.ResponseEntity;
78

89
import java.lang.reflect.ParameterizedType;
@@ -18,7 +19,7 @@ public ResponseBuilder(OperationBuilder operationBuilder) {
1819
protected Schema calculateSchemaFromParameterizedType(Components components, ParameterizedType parameterizedType,
1920
JsonView jsonView) {
2021
Schema<?> schemaN = null;
21-
if (ResponseEntity.class.getName().contentEquals(parameterizedType.getRawType().getTypeName())) {
22+
if (ResponseEntity.class.getName().contentEquals(parameterizedType.getRawType().getTypeName()) || HttpEntity.class.getName().contentEquals(parameterizedType.getRawType().getTypeName())) {
2223
schemaN = calculateSchemaParameterizedType(components, parameterizedType, jsonView);
2324
}
2425
return schemaN;

springdoc-openapi-webmvc-core/src/test/java/test/org/springdoc/api/app14/HelloController.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package test.org.springdoc.api.app14;
22

3+
import org.springframework.http.HttpEntity;
34
import org.springframework.web.bind.annotation.GetMapping;
45
import org.springframework.web.bind.annotation.RestController;
56

@@ -9,9 +10,13 @@
910
@RestController
1011
public class HelloController {
1112

12-
@GetMapping(value = "/persons")
13+
@GetMapping( "/persons")
1314
public void persons(@Valid @NotBlank String name) {
1415

1516
}
1617

18+
@GetMapping("/test")
19+
public HttpEntity<String> demo2() {
20+
return null;
21+
}
1722
}

springdoc-openapi-webmvc-core/src/test/resources/results/app14.json

+20
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,26 @@
1111
}
1212
],
1313
"paths": {
14+
"/test": {
15+
"get": {
16+
"tags": [
17+
"hello-controller"
18+
],
19+
"operationId": "demo2",
20+
"responses": {
21+
"200": {
22+
"description": "default response",
23+
"content": {
24+
"*/*": {
25+
"schema": {
26+
"type": "string"
27+
}
28+
}
29+
}
30+
}
31+
}
32+
}
33+
},
1434
"/persons": {
1535
"get": {
1636
"tags": [

0 commit comments

Comments
 (0)