Skip to content

Commit 9e3101b

Browse files
committed
All request headers marked as required for Java controllers in mixed projects in 2.0.3. fixes #2187
1 parent bd08fb3 commit 9e3101b

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocKotlinConfiguration.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ open class SpringDocKotlinConfiguration(objectMapperProvider: ObjectMapperProvid
8484
open fun nullableKotlinRequestParameterCustomizer(): ParameterCustomizer {
8585
return ParameterCustomizer { parameterModel, methodParameter ->
8686
if (parameterModel == null) return@ParameterCustomizer null
87-
if (KotlinDetector.isKotlinReflectPresent()) {
87+
if (KotlinDetector.isKotlinReflectPresent() && KotlinDetector.isKotlinType(methodParameter.parameterType)) {
8888
val kParameter = methodParameter.toKParameter()
8989
if (kParameter != null) {
9090
val parameterDoc = AnnotatedElementUtils.findMergedAnnotation(
@@ -99,7 +99,7 @@ open class SpringDocKotlinConfiguration(objectMapperProvider: ObjectMapperProvid
9999
if (parameterDoc != null && parameterDoc.required)
100100
parameterModel.required = parameterDoc.required
101101
// parameter is not required if a default value is provided in @RequestParam
102-
else if (requestParam != null && ((requestParam.defaultValue != ValueConstants.DEFAULT_NONE) || !requestParam.required))
102+
else if (requestParam != null && requestParam.defaultValue != ValueConstants.DEFAULT_NONE)
103103
parameterModel.required = false
104104
else
105105
parameterModel.required =

springdoc-openapi-tests/springdoc-openapi-kotlin-tests/src/test/java/test/org/springdoc/api/app21/HelloController.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import org.springframework.http.MediaType;
77
import org.springframework.web.bind.annotation.GetMapping;
8+
import org.springframework.web.bind.annotation.RequestHeader;
89
import org.springframework.web.bind.annotation.RequestMapping;
910
import org.springframework.web.bind.annotation.RequestParam;
1011
import org.springframework.web.bind.annotation.RestController;
@@ -17,4 +18,8 @@ public class HelloController {
1718
@GetMapping("/")
1819
public void greet(@RequestParam(required = false) @Parameter(required = false) final String name) {
1920
}
21+
22+
@GetMapping("/test2")
23+
public void greet1(@RequestHeader(required = false) @Parameter(required = false) final String name) {
24+
}
2025
}

springdoc-openapi-tests/springdoc-openapi-kotlin-tests/src/test/resources/results/app21.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,29 @@
1111
}
1212
],
1313
"paths": {
14+
"/api/v2/test/test2": {
15+
"get": {
16+
"tags": [
17+
"Test"
18+
],
19+
"operationId": "greet1",
20+
"parameters": [
21+
{
22+
"name": "name",
23+
"in": "header",
24+
"required": false,
25+
"schema": {
26+
"type": "string"
27+
}
28+
}
29+
],
30+
"responses": {
31+
"200": {
32+
"description": "OK"
33+
}
34+
}
35+
}
36+
},
1437
"/api/v2/test/": {
1538
"get": {
1639
"tags": [

0 commit comments

Comments
 (0)