Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1ebf9b8

Browse files
Order of examples is (sometimes) not preserved. Fixes #3012
1 parent 10fd6dd commit 1ebf9b8

File tree

3 files changed

+47
-3
lines changed

3 files changed

+47
-3
lines changed

‎springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/GenericParameterService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import java.util.ArrayList;
3636
import java.util.Arrays;
3737
import java.util.Collections;
38-
import java.util.HashMap;
38+
import java.util.LinkedHashMap;
3939
import java.util.List;
4040
import java.util.Locale;
4141
import java.util.Map;
@@ -452,7 +452,7 @@ else if (parameterInfo.isRequestPart() || ParameterIn.QUERY.toString().equals(pa
452452
* @param parameter the parameter
453453
*/
454454
private void setExamples(io.swagger.v3.oas.annotations.Parameter parameterDoc, Parameter parameter) {
455-
Map<String, Example> exampleMap = new HashMap<>();
455+
Map<String, Example> exampleMap = new LinkedHashMap<>();
456456
if (parameterDoc.examples().length == 1 && StringUtils.isBlank(parameterDoc.examples()[0].name())) {
457457
Optional<Example> exampleOptional = AnnotationsUtils.getExample(parameterDoc.examples()[0]);
458458
exampleOptional.ifPresent(parameter::setExample);

‎springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v31/app244/HelloController.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,13 @@
2626

2727
package test.org.springdoc.api.v31.app244;
2828

29+
import io.swagger.v3.oas.annotations.enums.ParameterIn;
2930
import io.swagger.v3.oas.annotations.headers.Header;
31+
import io.swagger.v3.oas.annotations.media.ExampleObject;
3032
import io.swagger.v3.oas.annotations.media.Schema;
3133
import io.swagger.v3.oas.annotations.responses.ApiResponse;
3234

35+
import org.springframework.web.bind.annotation.GetMapping;
3336
import org.springframework.web.bind.annotation.PostMapping;
3437
import org.springframework.web.bind.annotation.RequestMapping;
3538
import org.springframework.web.bind.annotation.RestController;
@@ -48,6 +51,16 @@ public class HelloController {
4851
)
4952
public void uploadMultipartWithBody(){
5053
}
51-
54+
55+
@GetMapping
56+
@io.swagger.v3.oas.annotations.Parameter(
57+
in = ParameterIn.HEADER,
58+
name = "x-header",
59+
examples = {
60+
@ExampleObject(value = "AAA", name = "First"),
61+
@ExampleObject(value = "BBB", name = "Second"),
62+
@ExampleObject(value = "CCC", name = "Third")
63+
})
64+
void nope() {}
5265

5366
}

‎springdoc-openapi-starter-webmvc-api/src/test/resources/results/3.1.0/app244.json

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,37 @@
1212
],
1313
"paths": {
1414
"/test": {
15+
"get": {
16+
"tags": [
17+
"hello-controller"
18+
],
19+
"operationId": "nope",
20+
"parameters": [
21+
{
22+
"name": "x-header",
23+
"in": "header",
24+
"examples": {
25+
"First": {
26+
"description": "First",
27+
"value": "AAA"
28+
},
29+
"Second": {
30+
"description": "Second",
31+
"value": "BBB"
32+
},
33+
"Third": {
34+
"description": "Third",
35+
"value": "CCC"
36+
}
37+
}
38+
}
39+
],
40+
"responses": {
41+
"200": {
42+
"description": "OK"
43+
}
44+
}
45+
},
1546
"post": {
1647
"tags": [
1748
"hello-controller"

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /