From 27b75538125f967098be5fd58f2fc9dd3ecd13ff Mon Sep 17 00:00:00 2001 From: Luis del Toro Date: Sat, 15 Oct 2016 16:33:14 +0200 Subject: [PATCH] Copy attributes when applying path prefix to field descriptors See gh-314 --- .../restdocs/payload/PayloadDocumentation.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spring-restdocs-core/src/main/java/org/springframework/restdocs/payload/PayloadDocumentation.java b/spring-restdocs-core/src/main/java/org/springframework/restdocs/payload/PayloadDocumentation.java index 9a552c92..49456a11 100644 --- a/spring-restdocs-core/src/main/java/org/springframework/restdocs/payload/PayloadDocumentation.java +++ b/spring-restdocs-core/src/main/java/org/springframework/restdocs/payload/PayloadDocumentation.java @@ -21,6 +21,8 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import org.springframework.restdocs.snippet.Attributes; + /** * Static factory methods for documenting a RESTful API's request and response payloads. * @@ -452,6 +454,7 @@ public abstract class PayloadDocumentation { pathPrefix + descriptor.getPath()) .description(descriptor.getDescription()) .type(descriptor.getType()); + prefixedDescriptor.attributes(convertAttributesToArray(descriptor.getAttributes())); if (descriptor.isIgnored()) { prefixedDescriptor.ignored(); } @@ -463,4 +466,12 @@ public abstract class PayloadDocumentation { return prefixedDescriptors; } + private static Attributes.Attribute[] convertAttributesToArray(Map attributes) { + List attributesAsList = new ArrayList<>(); + for (Map.Entry entry : attributes.entrySet()) { + attributesAsList.add(Attributes.key(entry.getKey()).value(entry.getValue())); + } + return attributesAsList.toArray(new Attributes.Attribute[] {}); + } + }