Skip to content

Commit 03d98a9

Browse files
authored
Merge pull request #2463 from swagger-api/annotation-encoding
encoding annotation support
2 parents 773ca2f + 5075dd5 commit 03d98a9

File tree

5 files changed

+391
-10
lines changed

5 files changed

+391
-10
lines changed

modules/swagger-annotations/src/main/java/io/swagger/oas/annotations/Operation.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package io.swagger.oas.annotations;
1818

1919
import io.swagger.oas.annotations.extensions.Extension;
20-
import io.swagger.oas.annotations.extensions.ExtensionProperty;
21-
import io.swagger.oas.annotations.parameters.RequestBody;
2220
import io.swagger.oas.annotations.responses.ApiResponse;
2321
import io.swagger.oas.annotations.security.SecurityRequirement;
2422
import io.swagger.oas.annotations.servers.Server;
@@ -78,12 +76,6 @@
7876
**/
7977
Parameter[] parameters() default {};
8078

81-
/**
82-
* The request body applicable for this operation.
83-
* @return the requesty body of this operation
84-
**/
85-
RequestBody requestBody() default @RequestBody();
86-
8779
/**
8880
* The list of possible responses as they are returned from executing this operation.
8981
* @return the list of responses for this operation

modules/swagger-jaxrs2/src/main/java/io/swagger/jaxrs2/OperationParser.java

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import io.swagger.oas.models.links.Link;
1616
import io.swagger.oas.models.media.ArraySchema;
1717
import io.swagger.oas.models.media.Content;
18+
import io.swagger.oas.models.media.Encoding;
19+
import io.swagger.oas.models.media.Encoding.StyleEnum;
1820
import io.swagger.oas.models.media.MediaType;
1921
import io.swagger.oas.models.media.Schema;
2022
import io.swagger.oas.models.parameters.Parameter;
@@ -429,6 +431,10 @@ public static Optional<Content> getContent(io.swagger.oas.annotations.media.Cont
429431
for (ExampleObject example : examples) {
430432
ParameterProcessor.getExample(example).ifPresent(exampleObject -> mediaType.addExamples(example.name(), exampleObject));
431433
}
434+
io.swagger.oas.annotations.media.Encoding[] encodings = annotationContent.encoding();
435+
for (io.swagger.oas.annotations.media.Encoding encoding : encodings) {
436+
addEncodingToMediaType(mediaType, encoding, components);
437+
}
432438
if (StringUtils.isNotBlank(annotationContent.mediaType())) {
433439
content.addMediaType(annotationContent.mediaType(), mediaType);
434440
} else {
@@ -504,6 +510,36 @@ public static Optional<Header> getHeader(io.swagger.oas.annotations.headers.Head
504510
return Optional.of(headerObject);
505511
}
506512

513+
public static void addEncodingToMediaType(MediaType mediaType, io.swagger.oas.annotations.media.Encoding encoding, Components components) {
514+
if (encoding == null) {
515+
return;
516+
}
517+
if (StringUtils.isNotBlank(encoding.name())) {
518+
519+
Encoding encodingObject = new Encoding();
520+
521+
if (StringUtils.isNotBlank(encoding.contentType())) {
522+
encodingObject.setContentType(encoding.contentType());
523+
}
524+
if (StringUtils.isNotBlank(encoding.style())) {
525+
encodingObject.setStyle(StyleEnum.valueOf(encoding.style()));
526+
}
527+
if (encoding.explode()) {
528+
encodingObject.setExplode(encoding.explode());
529+
}
530+
if (encoding.allowReserved()) {
531+
encodingObject.setAllowReserved(encoding.allowReserved());
532+
}
533+
534+
if (encoding.headers() != null) {
535+
getHeaders(encoding.headers(), components).ifPresent(encodingObject::headers);
536+
}
537+
538+
mediaType.addEncoding(encoding.name(), encodingObject);
539+
}
540+
541+
}
542+
507543
public static Optional<Schema> getSchema(io.swagger.oas.annotations.media.Content annotationContent, Components components) {
508544
Class<?> schemaImplementation = annotationContent.schema().implementation();
509545
Map<String, Schema> schemaMap;
@@ -676,4 +712,4 @@ public static Map<String, String> getLinkParameters(LinkParameter[]
676712

677713
return linkParametersMap;
678714
}
679-
}
715+
}

modules/swagger-jaxrs2/src/main/java/io/swagger/jaxrs2/Reader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public class Reader implements OpenApiReader {
6666
private Paths paths;
6767
private Set<Tag> openApiTags;
6868
javax.ws.rs.Consumes classConsumes;
69+
6970
javax.ws.rs.Produces classProduces;
7071
javax.ws.rs.Produces methodProduces;
7172

0 commit comments

Comments
 (0)