restdocs-api-spec icon indicating copy to clipboard operation
restdocs-api-spec copied to clipboard

ResourceSnippet does not support PayloadSubsectionExtractor

Open antoinelochet opened this issue 2 years ago • 1 comments

Hello,

When migrating from vanilla Spring REST Doc to this plugin, we encountered a problem with PayloadSubsectionExtractor. It is not used at all. Here is our exemple:

document("example",
        RequestDocumentation.pathParameters(
                DocumentationHelper.tokenIdPathParameterDescriptor()
        ),
        PayloadDocumentation.requestFields(
                DocumentationHelper.keyAttributesFieldDescriptor()
        ),
        PayloadDocumentation.relaxedResponseFields(
                PayloadDocumentation.beneathPath("[]"),
                DocumentationHelper.keyTypeFieldDescriptor(),
                DocumentationHelper.keyIdFieldDescriptor(),
                DocumentationHelper.keySizeFieldDescriptor("size"),
                DocumentationHelper.curveOIDFieldDescriptor().type(String.class).optional(),
                DocumentationHelper.publicKeyFieldDescriptor(),
                DocumentationHelper.privateKeyFieldDescriptor()
        ),
        PayloadDocumentation.responseFields(
                PayloadDocumentation.beneathPath("[].privateKey"),
                DocumentationHelper.keyUsagesFieldDescriptor(),
                DocumentationHelper.keyAttributesFieldDescriptor()
        ),
        PayloadDocumentation.responseFields(
                PayloadDocumentation.beneathPath("[].publicKey"),
                DocumentationHelper.rsaPublicKeyDetailsFieldDescriptors()
        )
)

The PayloadDocumentation.beneathPath("[]") is not used at all, which result in multiple errors with fields not found. We have seen in the documentation that it would be possible to use subsectionWithPath or fieldWithPath but since MockMvcRestDocumentationWrapper is described to be a drop-in replacement, we do not want to go this route.

antoinelochet avatar Feb 23 '23 17:02 antoinelochet

Hey @ozscheyge would you be able to review a PR to address this so that beneathPath() gets treated as expected?

philipowen avatar Oct 10 '23 12:10 philipowen