Commit Graph

214 Commits

Author SHA1 Message Date
Andy Wilkinson
1751910898 Polish 2018-04-04 09:41:31 +01:00
Andy Wilkinson
e7d2d44a05 Polish "Move UriModifyingOperationPreprocessor to core project"
Closes gh-493
2018-03-28 11:44:50 +01:00
Joe McCall
37f313c766 Move UriModifyingOperationPreprocessor to core project
This functionality does not rely on RestAssured, and could prove
useful to other Spring REST Docs extensions.

See gh-493
2018-03-28 11:38:30 +01:00
Andy Wilkinson
45d27f2ca1 Merge branch '1.2.x' 2018-03-28 09:50:20 +01:00
Andy Wilkinson
1c08000bcf Retain subsection extractor when adding field descriptors with prefix
Closes gh-480
2018-03-28 09:46:27 +01:00
Andy Wilkinson
fa5e2366d2 Merge branch '1.2.x' 2018-03-27 16:08:39 +01:00
Andy Wilkinson
7924d5fb01 Disable formatting of monospaced text in Asciidoctor templates
Previously, if text enclosed in ` characters contained multiple *
characters, the *s would be removed and the characters they enclosed
would become bold.

This commit escapes the text by enclosing it in + characters in
addition to the existing, enclosing ` characters. The `+text+`
arrangement retains the monospace formatting be disables any further
formatting of the text.

Closes gh-474
2018-03-27 16:08:11 +01:00
Andy Wilkinson
7f91d5f2e5 Merge branch '1.2.x' 2018-03-27 14:13:45 +01:00
Johnny Lim
da64c55fce Add HTTP method option unconditionally in curl command
Closes gh-488
2018-03-27 14:07:47 +01:00
Andy Wilkinson
e84aa86171 Merge branch '1.2.x' 2018-03-27 13:01:20 +01:00
Andy Wilkinson
95c4234c99 Format core code with Eclipse Oxygen's formatter 2018-03-27 12:53:34 +01:00
Andy Wilkinson
a17e17b00a Align constraints support with Hibernate Validator 6
Closes gh-454
2017-11-12 12:56:45 +00:00
Andy Wilkinson
49a0d4f714 Merge branch '1.2.x' 2017-11-07 18:03:03 +00:00
Andy Wilkinson
90c3549f55 Refine ordering of default, operation, and additional snippets
Previously, the ordering was:

1. Operation snippets
2. Default snippets
3. Additional snippets

This meant that any operation snippets (those specifically configured
for the documentation of the particular operation) would be
overwritten by the output of the default snippets.

This commit updates the ordering to the following:

1. Default snippets
2. Operation snippets
3. Additional snippets

Closes gh-453
2017-11-07 17:52:02 +00:00
Andy Wilkinson
3f602465c0 Remove redundant additionalSnippets field
Closes gh-452
2017-11-07 17:14:09 +00:00
Andy Wilkinson
aedb9a7bab Align with breaking API changes since JUnit 5.0 M4
Closes gh-451
2017-11-06 21:02:00 +00:00
Andy Wilkinson
cfb1fbc85d Add support for using WebFlux's WebTestClient to document an API
Closes gh-384
2017-10-30 09:58:07 +00:00
Andy Wilkinson
eed90c0b9a Polish "Add support for configuring default request and response preprocessors"
Closes gh-424
2017-10-27 12:09:56 +01:00
Filip Hrisafov
4f8b173836 Add support for configuring default request and response preprocessors
See gh-424
2017-10-27 12:09:56 +01:00
Andy Wilkinson
276a1807c7 Polish 2017-10-26 16:10:42 +01:00
Andy Wilkinson
7e0da73dd2 Merge branch '1.2.x' 2017-10-20 11:04:08 +01:00
Andy Wilkinson
07bca1875f Replace placeholders in snippet name as well as the operation name
Previously, StandardWriterResolver only replaced placeholders in the
operation name. This meant that the name and location of generated
snippets was unnecessarily limited.

This commit makes things more flexible by updating
StandardWriterResolver to replace placeholders in the snippet name
as well.

Closes gh-403
2017-10-20 10:56:07 +01:00
Andy Wilkinson
660c440c6c Merge branch '1.2.x' 2017-10-20 10:32:05 +01:00
Andy Wilkinson
f62b0f3ce7 Support documentation of a required field beneath an optional field
Previously, if a field nested beneath an optional field was documented
and was required, it would be identified as missing even if its
optional ancestor was missing. This made it impossible to document
required fields of an optional subsection of a payload.

This commit updates JsonContentHandler to consider a field’s ancestors
when determining if it should be reported as missing. If the field
field has an optional ancestor that is not present, the field is not
considered to be missing if it too is not present. If the field has
an optional ancestor that is present then the field is considered to
be missing if it is not present.

Closes gh-429
2017-10-20 10:05:26 +01:00
Andy Wilkinson
7f75529c01 Merge branch '1.2.x' 2017-10-20 09:57:28 +01:00
Johnny Lim
aeb12673ae Polish tests
Closes gh-436
2017-10-20 09:39:59 +01:00
Andy Wilkinson
3d7262ae46 Merge branch '1.2.x' 2017-10-12 10:37:05 +01:00
Andy Wilkinson
0c8ec11c9c Polish “Reuse ObjectMapper in FieldPathPayloadSubsectionExtractor” 2017-10-12 10:36:23 +01:00
Johnny Lim
9bd9fa31dc Reuse ObjectMapper in FieldPathPayloadSubsectionExtractor
Closes gh-431
2017-10-12 10:33:40 +01:00
Andy Wilkinson
47bcc45e45 Upgrade dependencies 2017-09-23 18:00:17 +01:00
Andy Wilkinson
de67160b1e Merge branch '1.2.x' 2017-09-23 17:40:29 +01:00
Andy Wilkinson
d22dc1e211 Include filename in Content-Disposition header when available
Closes gh-425
2017-09-23 17:40:22 +01:00
Andy Wilkinson
4e99df6b75 Merge branch '1.2.x' 2017-09-23 17:20:55 +01:00
Andy Wilkinson
7c6c2e7523 Polish 2017-09-23 17:20:03 +01:00
Andy Wilkinson
5f7aa1af56 Merge branch '1.2.x' 2017-09-23 16:41:05 +01:00
Andy Wilkinson
a084175afd Fix field extraction and type resolution beneath arrays and wildcards
Fixes gh-422
Fixes gh-423
2017-09-23 16:40:12 +01:00
Andy Wilkinson
4854bc949f Fix type resolution for fields with null and non-null values
Closes gh-398
2017-09-23 16:40:07 +01:00
Andy Wilkinson
5ac105db83 Merge branch '1.2.x' 2017-07-02 10:31:01 +01:00
Andy Wilkinson
a38a512033 Require occasionally null or absent field in array to be marked optional
Closes gh-402
2017-07-02 10:29:27 +01:00
Andy Wilkinson
3ac173c149 Merge branch '1.2.x' 2017-07-01 16:30:37 +01:00
Andy Wilkinson
a84bb0c569 Make new snippet relaxed when adding descriptors to relaxed snippet
Closes gh-400
2017-07-01 16:27:40 +01:00
Johnny Lim
9a22ec0442 Add missing space to assertion failure message in the tests
Closes gh-397
2017-07-01 11:22:59 +01:00
Andy Wilkinson
fbd13e30b0 Merge branch '1.2.x' 2017-07-01 11:14:55 +01:00
Andy Wilkinson
6bf1edcd09 Improve handling of null fields beneath an array
Previously, if an array contained objects where a field was sometimes
null and sometimes had a value of a consistent type, the type inferred
type was varies. Furthermore, it was not possible for the user to
specify a type other than varies as a mismatch would be detected.

This commit updates JsonFieldTypeResolver so that, when dealing with
an imprecise field path (i.e. a path for a field within an array),
null values that don't match the common type for the field are
ignored. This produces the following behavior when nulls are involved:

- All null fields results in the null type
- A mixture of nulls and a particular type results in the particular
  type
- A mixture of nulls and two or more other types results in the varies
  type

Closes gh-398
2017-07-01 11:07:38 +01:00
Andy Wilkinson
5cef4745f7 Polish new response fields test and add equivalent for request fields
See gh-399
2017-07-01 10:57:26 +01:00
Nakul Chaudhari
288ebf771a Add a test that shows problem with sometimes null field within an array
Closes gh-399
2017-07-01 10:52:26 +01:00
Andy Wilkinson
0e6e785fb0 Add support for JUnit 5
This commit adds support for JUnit 5 and its Jupiter programming
model. A new Jupiter Extension implementation,
RestDocumentationExtension, is provided. This extension can be applied
to a test class to allow it to use Spring REST Docs to document a
RESTful API.

Closes gh-296
2017-05-19 17:29:12 +02:00
Andy Wilkinson
6986cb75a8 Remove deprecated code
Closes gh-387
2017-05-19 09:27:06 +02:00
Andy Wilkinson
41d537d06a Raise the minimum supported version of Spring Framework to 5.0
This commit upgrades to Spring Framework 5.0.0.RC1. It also upgrades
the Spring Boot-based samples to use Spring Boot 2.0.0.M1 which
supports Spring Framework 5. Lastly, it upgrades a number of
third-party dependencies to align with Spring Framework 5 and Spring
Boot 2.

Closes gh-386
2017-05-18 16:46:03 +02:00
Andy Wilkinson
113976f2d9 Support documenting fields in XML payloads with any content type
Previously, the document fields in an XML payload, the request or
response had to have an application/xml content type. This prevented
documenting standard XML content types such as text/xml and
application/rss+xml as well as payloads with custom XML content types.

This commit updates the logic that sets up the ContentHandler to
first attempt to parse the content as JSON. If that fails it then
parses it as XML. If that fails an exception is thrown. This allows
any JSON or XML content, irrespective of the actual content type, to
be documented.

Closes gh-393
2017-05-12 12:35:15 +01:00