Previously empty parameters in a query string were handled
inconsistently such that they sometimes had a value of "" in a list
and sometimes were represented as an empty list. This inconsistency
lead to the parameter appearing twice in the cURL request snippet.
This commit removes the inconsistency by always using an empty string
to represent an empty query parameter value.
Fixes gh-647
This updates REST Docs to test against Framework's latest 5.1
snapshot. Due to a bug in the behaviour of HttpHeaders' key set [1],
HeaderRemovingOperationPreprocessor has been updated to no longer use
it when removing headers from a request or response prior to it being
documented.
[1] https://github.com/spring-projects/spring-framework/issues/22821
Previously, RestDocumenationExtension would attempt parameter resolution
for any use RestDocumentationContextProvider. Due to the provider
being method-scoped, this could lead to a NullPointerException when
it was resolved in the context of a class.
This commit updates RestDocumentationExtension so that it only supports
parameter resolution for RestDocumentationContextProvider in the context
of a test method.
Closes gh-538
Previously, missing field detection worked correctly for paths
containing a single array, but if the path contained multiple arrays
the extracted value would be a list containing a single empty list.
In this case the field would not be considered missing when, in fact
it should have been.
This commit updates the missing field detection logic to recursively
examine the extracted value and, when it's a collection, the values
that it contains. As a result, a field will be considered to be
missing if it isn't present, if it's an empty collection, or if it's
a collection that only contains empty collections or, to any depth,
collections of empty collections.
Closes gh-519