Skip to content

Commit 74a0874

Browse files
committed
refs #4836 - use array schema description/title
1 parent fbe8a8d commit 74a0874

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

modules/swagger-core/src/main/java/io/swagger/v3/core/util/AnnotationsUtils.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,16 @@ public static Optional<Schema> getArraySchema(io.swagger.v3.oas.annotations.medi
553553
getSchema(arraySchema.schema(), arraySchema, false, arraySchema.schema().implementation(), components, jsonViewAnnotation, openapi31).ifPresent(arraySchemaObject::setItems);
554554
}
555555
}
556-
556+
if (openapi31) {
557+
Optional.ofNullable(arraySchema.arraySchema())
558+
.map(io.swagger.v3.oas.annotations.media.Schema::description)
559+
.filter(StringUtils::isNotBlank)
560+
.ifPresent(arraySchemaObject::setDescription);
561+
Optional.ofNullable(arraySchema.arraySchema())
562+
.map(io.swagger.v3.oas.annotations.media.Schema::title)
563+
.filter(StringUtils::isNotBlank)
564+
.ifPresent(arraySchemaObject::setTitle);
565+
}
557566
return Optional.of(arraySchemaObject);
558567
}
559568

modules/swagger-core/src/test/java/io/swagger/v3/core/resolving/v31/ModelResolverOAS31Test.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public void testAnnotatedArray() {
3030
SerializationMatchers.assertEqualsToYaml31(model, "type: array\n" +
3131
"contains:\n" +
3232
" type: string\n" +
33+
"description: arraydescription\n" +
3334
"items:\n" +
3435
" type: string\n" +
36+
" description: itemdescription\n"+
3537
"maxContains: 10\n" +
3638
"minContains: 1\n" +
3739
"prefixItems:\n" +
@@ -115,12 +117,16 @@ public void testOAS31Fields() {
115117
" type: array\n" +
116118
" contains:\n" +
117119
" type: string\n" +
120+
" description: arraydescription\n" +
118121
" items:\n" +
119122
" type: string\n" +
123+
" description: itemdescription\n" +
124+
" title: itemtitle\n" +
120125
" maxContains: 10\n" +
121126
" minContains: 1\n" +
122127
" prefixItems:\n" +
123128
" - type: string\n" +
129+
" title: arraytitle\n" +
124130
" unevaluatedItems:\n" +
125131
" type: number\n" +
126132
" status:\n" +

modules/swagger-core/src/test/java/io/swagger/v3/core/resolving/v31/model/AnnotatedArray.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
types = { "number" }
1414
),
1515
schema = @Schema(
16-
types = { "string" }
16+
types = { "string" },
17+
description = "itemdescription"
1718
),
19+
arraySchema = @Schema(description = "arraydescription"),
1820
prefixItems = {
1921
@Schema(
2022
types = { "string" }

modules/swagger-core/src/test/java/io/swagger/v3/core/resolving/v31/model/ModelWithOAS31Stuff.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ public class ModelWithOAS31Stuff {
2323
private Client client;
2424

2525
@ArraySchema(
26+
schema = @Schema(
27+
types = { "string" },
28+
description = "itemdescription",
29+
title = "itemtitle"
30+
31+
),
32+
arraySchema = @Schema(description = "arraydescription", title = "arraytitle"),
2633
maxContains = 10,
2734
minContains = 1,
2835
contains = @Schema(

0 commit comments

Comments
 (0)