$ curl 'http://localhost:8080/' -i
6 | ├── .github ├── dco.yml ├── workflows │ ├── run-codeql-analysis.yml │ ├── delete-staged-release.yml │ ├── build-pull-request.yml │ └── trigger-docs-build.yml └── actions │ ├── sync-to-maven-central │ ├── artifacts.spec │ └── action.yml │ ├── print-jvm-thread-dumps │ └── action.yml │ ├── await-http-resource │ └── action.yml │ └── create-github-release │ ├── changelog-generator.yml │ └── action.yml ├── spring-restdocs-core ├── src │ ├── test │ │ ├── resources │ │ │ ├── field-payloads │ │ │ │ ├── no-fields.json │ │ │ │ ├── single-field.json │ │ │ │ ├── multiple-fields-and-embedded.json │ │ │ │ ├── multiple-fields-and-links.json │ │ │ │ ├── multiple-fields-and-embedded-and-links.json │ │ │ │ └── multiple-fields.json │ │ │ ├── link-payloads │ │ │ │ ├── atom │ │ │ │ │ ├── no-links.json │ │ │ │ │ ├── single-link.json │ │ │ │ │ ├── wrong-format.json │ │ │ │ │ ├── multiple-links-different-rels.json │ │ │ │ │ └── multiple-links-same-rels.json │ │ │ │ └── hal │ │ │ │ │ ├── no-links.json │ │ │ │ │ ├── single-link.json │ │ │ │ │ ├── wrong-format.json │ │ │ │ │ ├── multiple-links-different-rels.json │ │ │ │ │ └── multiple-links-same-rels.json │ │ │ ├── org │ │ │ │ └── springframework │ │ │ │ │ └── restdocs │ │ │ │ │ ├── templates │ │ │ │ │ ├── test-custom.snippet │ │ │ │ │ ├── test-default.snippet │ │ │ │ │ ├── multiple-snippets.snippet │ │ │ │ │ └── test-format-specific-custom.snippet │ │ │ │ │ └── constraints │ │ │ │ │ └── TestConstraintDescriptions.properties │ │ │ └── custom-snippet-templates │ │ │ │ ├── markdown │ │ │ │ ├── request-body-with-language.snippet │ │ │ │ ├── response-body-with-language.snippet │ │ │ │ ├── request-part-body-with-language.snippet │ │ │ │ ├── curl-request-with-title.snippet │ │ │ │ ├── httpie-request-with-title.snippet │ │ │ │ ├── links-with-title.snippet │ │ │ │ ├── request-cookies-with-title.snippet │ │ │ │ ├── request-headers-with-title.snippet │ │ │ │ ├── response-cookies-with-title.snippet │ │ │ │ ├── response-headers-with-title.snippet │ │ │ │ ├── links-with-extra-column.snippet │ │ │ │ ├── request-parts-with-title.snippet │ │ │ │ ├── request-cookies-with-extra-column.snippet │ │ │ │ ├── request-headers-with-extra-column.snippet │ │ │ │ ├── form-parameters-with-title.snippet │ │ │ │ ├── http-request-with-title.snippet │ │ │ │ ├── path-parameters-with-title.snippet │ │ │ │ ├── query-parameters-with-title.snippet │ │ │ │ ├── response-cookies-with-extra-column.snippet │ │ │ │ ├── response-headers-with-extra-column.snippet │ │ │ │ ├── request-parts-with-extra-column.snippet │ │ │ │ ├── response-fields-with-title.snippet │ │ │ │ ├── request-fields-with-title.snippet │ │ │ │ ├── form-parameters-with-extra-column.snippet │ │ │ │ ├── http-response-with-title.snippet │ │ │ │ ├── path-parameters-with-extra-column.snippet │ │ │ │ ├── query-parameters-with-extra-column.snippet │ │ │ │ ├── request-fields-with-extra-column.snippet │ │ │ │ ├── response-fields-with-extra-column.snippet │ │ │ │ ├── request-parts-with-optional-column.snippet │ │ │ │ ├── form-parameters-with-optional-column.snippet │ │ │ │ └── query-parameters-with-optional-column.snippet │ │ │ │ └── asciidoctor │ │ │ │ ├── request-body-with-language.snippet │ │ │ │ ├── response-body-with-language.snippet │ │ │ │ ├── curl-request-with-title.snippet │ │ │ │ ├── request-part-body-with-language.snippet │ │ │ │ ├── httpie-request-with-title.snippet │ │ │ │ ├── links-with-title.snippet │ │ │ │ ├── links-with-extra-column.snippet │ │ │ │ ├── request-cookies-with-title.snippet │ │ │ │ ├── request-headers-with-title.snippet │ │ │ │ ├── response-cookies-with-title.snippet │ │ │ │ ├── response-headers-with-title.snippet │ │ │ │ ├── request-parts-with-title.snippet │ │ │ │ ├── form-parameters-with-title.snippet │ │ │ │ ├── path-parameters-with-title.snippet │ │ │ │ ├── query-parameters-with-title.snippet │ │ │ │ ├── request-cookies-with-extra-column.snippet │ │ │ │ ├── request-headers-with-extra-column.snippet │ │ │ │ ├── response-cookies-with-extra-column.snippet │ │ │ │ ├── response-headers-with-extra-column.snippet │ │ │ │ ├── http-request-with-title.snippet │ │ │ │ ├── request-fields-with-title.snippet │ │ │ │ ├── request-parts-with-extra-column.snippet │ │ │ │ ├── response-fields-with-title.snippet │ │ │ │ ├── form-parameters-with-extra-column.snippet │ │ │ │ ├── path-parameters-with-extra-column.snippet │ │ │ │ ├── query-parameters-with-extra-column.snippet │ │ │ │ ├── request-fields-with-extra-column.snippet │ │ │ │ ├── response-fields-with-extra-column.snippet │ │ │ │ ├── form-parameters-with-optional-column.snippet │ │ │ │ ├── http-response-with-title.snippet │ │ │ │ ├── request-parts-with-optional-column.snippet │ │ │ │ ├── query-parameters-with-optional-column.snippet │ │ │ │ └── request-fields-with-list-description.snippet │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── restdocs │ │ │ └── hypermedia │ │ │ └── StubLinkExtractor.java │ ├── main │ │ ├── resources │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── restdocs │ │ │ │ └── templates │ │ │ │ ├── markdown │ │ │ │ ├── default-curl-request.snippet │ │ │ │ ├── default-request-body.snippet │ │ │ │ ├── default-request-part-body.snippet │ │ │ │ ├── default-response-body.snippet │ │ │ │ ├── default-httpie-request.snippet │ │ │ │ ├── default-links.snippet │ │ │ │ ├── default-request-headers.snippet │ │ │ │ ├── default-response-headers.snippet │ │ │ │ ├── default-request-cookies.snippet │ │ │ │ ├── default-response-cookies.snippet │ │ │ │ ├── default-request-parts.snippet │ │ │ │ ├── default-form-parameters.snippet │ │ │ │ ├── default-http-request.snippet │ │ │ │ ├── default-query-parameters.snippet │ │ │ │ ├── default-request-parameters.snippet │ │ │ │ ├── default-request-fields.snippet │ │ │ │ ├── default-response-fields.snippet │ │ │ │ ├── default-http-response.snippet │ │ │ │ ├── default-request-part-fields.snippet │ │ │ │ └── default-path-parameters.snippet │ │ │ │ └── asciidoctor │ │ │ │ ├── default-curl-request.snippet │ │ │ │ ├── default-httpie-request.snippet │ │ │ │ ├── default-request-body.snippet │ │ │ │ ├── default-response-body.snippet │ │ │ │ ├── default-request-part-body.snippet │ │ │ │ ├── default-http-request.snippet │ │ │ │ ├── default-http-response.snippet │ │ │ │ ├── default-links.snippet │ │ │ │ ├── default-request-cookies.snippet │ │ │ │ ├── default-request-headers.snippet │ │ │ │ ├── default-response-cookies.snippet │ │ │ │ ├── default-response-headers.snippet │ │ │ │ ├── default-request-parts.snippet │ │ │ │ ├── default-form-parameters.snippet │ │ │ │ ├── default-query-parameters.snippet │ │ │ │ ├── default-request-parameters.snippet │ │ │ │ ├── default-path-parameters.snippet │ │ │ │ ├── default-request-fields.snippet │ │ │ │ ├── default-response-fields.snippet │ │ │ │ └── default-request-part-fields.snippet │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── restdocs │ │ │ ├── package-info.java │ │ │ ├── snippet │ │ │ ├── package-info.java │ │ │ ├── SnippetException.java │ │ │ ├── Snippet.java │ │ │ ├── PlaceholderResolverFactory.java │ │ │ ├── RestDocumentationContextPlaceholderResolverFactory.java │ │ │ ├── ModelCreationException.java │ │ │ ├── IgnorableDescriptor.java │ │ │ └── WriterResolver.java │ │ │ ├── config │ │ │ ├── package-info.java │ │ │ ├── NestedConfigurer.java │ │ │ ├── SnippetConfiguration.java │ │ │ ├── AbstractConfigurer.java │ │ │ └── AbstractNestedConfigurer.java │ │ │ ├── constraints │ │ │ ├── package-info.java │ │ │ ├── ConstraintDescriptionResolver.java │ │ │ ├── ConstraintResolver.java │ │ │ └── Constraint.java │ │ │ ├── hypermedia │ │ │ ├── package-info.java │ │ │ ├── LinkExtractor.java │ │ │ └── AbstractJsonLinkExtractor.java │ │ │ ├── templates │ │ │ ├── package-info.java │ │ │ ├── mustache │ │ │ │ ├── package-info.java │ │ │ │ └── AsciidoctorTableCellContentLambda.java │ │ │ ├── Template.java │ │ │ ├── TemplateFormat.java │ │ │ ├── TemplateResourceResolver.java │ │ │ └── TemplateEngine.java │ │ │ ├── cli │ │ │ ├── package-info.java │ │ │ └── CommandFormatter.java │ │ │ ├── cookies │ │ │ └── package-info.java │ │ │ ├── generate │ │ │ ├── package-info.java │ │ │ └── RestDocumentationGenerationException.java │ │ │ ├── headers │ │ │ └── package-info.java │ │ │ ├── payload │ │ │ ├── package-info.java │ │ │ ├── SubsectionDescriptor.java │ │ │ ├── FieldTypeRequiredException.java │ │ │ ├── FieldDoesNotExistException.java │ │ │ ├── PayloadHandlingException.java │ │ │ ├── FieldTypesDoNotMatchException.java │ │ │ ├── JsonFieldType.java │ │ │ └── JsonFieldTypes.java │ │ │ ├── request │ │ │ └── package-info.java │ │ │ ├── http │ │ │ └── package-info.java │ │ │ ├── operation │ │ │ ├── preprocess │ │ │ │ ├── package-info.java │ │ │ │ ├── HeaderFilter.java │ │ │ │ ├── OperationRequestPreprocessor.java │ │ │ │ ├── OperationResponsePreprocessor.java │ │ │ │ ├── ExactMatchHeaderFilter.java │ │ │ │ ├── PatternMatchHeaderFilter.java │ │ │ │ ├── OperationPreprocessor.java │ │ │ │ └── ContentModifier.java │ │ │ ├── package-info.java │ │ │ ├── OperationMessage.java │ │ │ ├── RequestConverter.java │ │ │ ├── ResponseConverter.java │ │ │ ├── Operation.java │ │ │ ├── RequestCookie.java │ │ │ ├── ResponseCookie.java │ │ │ └── ConversionException.java │ │ │ ├── RestDocumentationContextProvider.java │ │ │ └── RestDocumentationContext.java │ └── testFixtures │ │ └── java │ │ └── org │ │ └── springframework │ │ └── restdocs │ │ └── testfixtures │ │ └── jupiter │ │ ├── SnippetTemplate.java │ │ └── SnippetTest.java └── build.gradle ├── .sdkmanrc ├── gradle ├── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties └── plugins │ ├── optional-dependencies │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── META-INF │ │ │ └── gradle-plugins │ │ │ └── optional-dependencies.properties │ └── build.gradle │ ├── toolchain │ ├── build.gradle │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── springframework │ │ └── restdocs │ │ └── build │ │ └── toolchain │ │ ├── package-info.java │ │ └── ToolchainPlugin.java │ ├── config │ └── checkstyle │ │ └── checkstyle.xml │ ├── antora │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── antora-playbook-template.yml │ └── build.gradle │ ├── settings.gradle │ ├── conventions │ ├── build.gradle │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── springframework │ │ └── restdocs │ │ └── build │ │ └── conventions │ │ ├── ConventionsPlugin.java │ │ └── Conventions.java │ └── build.gradle ├── spring-restdocs-docs └── src │ ├── docs │ └── antora │ │ ├── modules │ │ ├── api │ │ │ └── partials │ │ │ │ └── nav-api.adoc │ │ ├── tutorial │ │ │ ├── partials │ │ │ │ └── nav-tutorial.adoc │ │ │ └── pages │ │ │ │ └── index.adoc │ │ ├── reference │ │ │ ├── pages │ │ │ │ ├── index.adoc │ │ │ │ ├── configuration │ │ │ │ │ ├── index.adoc │ │ │ │ │ ├── snippet-template-format.adoc │ │ │ │ │ ├── default-snippets.adoc │ │ │ │ │ ├── snippet-encoding.adoc │ │ │ │ │ ├── default-preprocessors.adoc │ │ │ │ │ └── uris.adoc │ │ │ │ ├── documenting-your-api │ │ │ │ │ ├── index.adoc │ │ │ │ │ ├── null-safety.adoc │ │ │ │ │ └── default-snippets.adoc │ │ │ │ └── working-with-markdown.adoc │ │ │ └── partials │ │ │ │ └── nav-reference.adoc │ │ ├── ROOT │ │ │ └── pages │ │ │ │ ├── system-requirements.adoc │ │ │ │ ├── contributing.adoc │ │ │ │ └── index.adoc │ │ └── how-to │ │ │ ├── partials │ │ │ └── nav-how-to.adoc │ │ │ └── pages │ │ │ ├── index.adoc │ │ │ └── reusing-snippets.adoc │ │ ├── nav.adoc │ │ └── antora.yml │ └── test │ └── java │ └── org │ └── springframework │ └── restdocs │ └── docs │ ├── documentingyourapi │ ├── requestresponsepayloads │ │ ├── subsections │ │ │ └── body │ │ │ │ └── CustomSubsectionId.java │ │ └── fields │ │ │ └── reusingfielddescriptors │ │ │ └── BookPayload.java │ ├── constraints │ │ └── Constraints.java │ └── hypermedia │ │ └── ignoringcommonlinks │ │ └── Hypermedia.java │ ├── gettingstarted │ └── documentationsnippets │ │ └── invokingtheservice │ │ ├── webtestclient │ │ └── InvokeService.java │ │ └── mockmvc │ │ └── InvokeService.java │ └── howto │ └── reusingsnippets │ └── CommonSnippets.java ├── spring-restdocs-mockmvc ├── src │ ├── test │ │ └── resources │ │ │ ├── custom-snippet-templates │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── restdocs │ │ │ │ └── templates │ │ │ │ └── curl-request.snippet │ │ │ └── org │ │ │ └── springframework │ │ │ └── restdocs │ │ │ └── templates │ │ │ └── request-parts.snippet │ └── main │ │ └── java │ │ └── org │ │ └── springframework │ │ └── restdocs │ │ └── mockmvc │ │ └── package-info.java └── build.gradle ├── spring-restdocs-asciidoctor ├── src │ ├── test │ │ ├── resources │ │ │ ├── some-operation │ │ │ │ ├── curl-request.adoc │ │ │ │ ├── custom-snippet.adoc │ │ │ │ ├── http-request.adoc │ │ │ │ └── response-fields.adoc │ │ │ ├── META-INF │ │ │ │ └── services │ │ │ │ │ └── org.asciidoctor.log.LogHandler │ │ │ ├── sample-snippet.adoc │ │ │ └── operations │ │ │ │ ├── missing-operation.html │ │ │ │ ├── missing-snippet.html │ │ │ │ ├── snippet-with-level.html │ │ │ │ ├── snippet-simple.html │ │ │ │ ├── custom-snippet-custom-title.html │ │ │ │ ├── custom-snippet-default-title.html │ │ │ │ ├── built-in-snippet-custom-title.html │ │ │ │ ├── multiple-snippets.html │ │ │ │ ├── snippet-in-section.html │ │ │ │ └── snippet-table.html │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── restdocs │ │ │ └── asciidoctor │ │ │ └── CapturingLogHandler.java │ └── main │ │ ├── resources │ │ └── META-INF │ │ │ └── services │ │ │ └── org.asciidoctor.jruby.extension.spi.ExtensionRegistry │ │ └── java │ │ └── org │ │ └── springframework │ │ └── restdocs │ │ └── asciidoctor │ │ ├── package-info.java │ │ ├── RestDocsExtensionRegistry.java │ │ └── DefaultAttributesPreprocessor.java └── build.gradle ├── .gitignore ├── gradle.properties ├── config └── checkstyle │ ├── checkstyle-suppressions.xml │ └── checkstyle.xml ├── spring-restdocs-bom └── build.gradle ├── settings.gradle ├── spring-restdocs-webtestclient ├── build.gradle └── src │ └── main │ └── java │ └── org │ └── springframework │ └── restdocs │ └── webtestclient │ └── package-info.java ├── antora └── package.json └── spring-restdocs-platform └── build.gradle /.github/dco.yml: -------------------------------------------------------------------------------- 1 | require: 2 | members: false 3 | -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/field-payloads/no-fields.json: -------------------------------------------------------------------------------- 1 | { } -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/link-payloads/atom/no-links.json: -------------------------------------------------------------------------------- 1 | { } -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/link-payloads/hal/no-links.json: -------------------------------------------------------------------------------- 1 | { } -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/org/springframework/restdocs/templates/test-custom.snippet: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/org/springframework/restdocs/templates/test-default.snippet: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/field-payloads/single-field.json: -------------------------------------------------------------------------------- 1 | { 2 | "alpha": "alpha-value" 3 | } -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/org/springframework/restdocs/templates/multiple-snippets.snippet: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/org/springframework/restdocs/templates/test-format-specific-custom.snippet: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.sdkmanrc: -------------------------------------------------------------------------------- 1 | # Enable auto-env through the sdkman_auto_env config 2 | # Add key=value pairs of SDKs to use below 3 | java=25-librca 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-projects/spring-restdocs/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/custom-snippet-templates/markdown/request-body-with-language.snippet: -------------------------------------------------------------------------------- 1 | ```{{language}} 2 | {{body}} 3 | ``` -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/custom-snippet-templates/markdown/response-body-with-language.snippet: -------------------------------------------------------------------------------- 1 | ```{{language}} 2 | {{body}} 3 | ``` -------------------------------------------------------------------------------- /spring-restdocs-docs/src/docs/antora/modules/api/partials/nav-api.adoc: -------------------------------------------------------------------------------- 1 | * API 2 | ** xref:api:java/index.html[Java,role=link-external, window=_blank] -------------------------------------------------------------------------------- /spring-restdocs-mockmvc/src/test/resources/custom-snippet-templates/org/springframework/restdocs/templates/curl-request.snippet: -------------------------------------------------------------------------------- 1 | Custom curl request -------------------------------------------------------------------------------- /spring-restdocs-asciidoctor/src/test/resources/some-operation/curl-request.adoc: -------------------------------------------------------------------------------- 1 | [source,bash] 2 | ---- 3 | $ curl 'http://localhost:8080/' -i 4 | ---- -------------------------------------------------------------------------------- /spring-restdocs-asciidoctor/src/test/resources/some-operation/custom-snippet.adoc: -------------------------------------------------------------------------------- 1 | [source,http,options="nowrap"] 2 | ---- 3 | mycustomsnippet-äöü 4 | ---- -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/custom-snippet-templates/markdown/request-part-body-with-language.snippet: -------------------------------------------------------------------------------- 1 | ```{{language}} 2 | {{body}} 3 | ``` -------------------------------------------------------------------------------- /spring-restdocs-asciidoctor/src/test/resources/META-INF/services/org.asciidoctor.log.LogHandler: -------------------------------------------------------------------------------- 1 | org.springframework.restdocs.asciidoctor.CapturingLogHandler -------------------------------------------------------------------------------- /spring-restdocs-core/src/main/resources/org/springframework/restdocs/templates/markdown/default-curl-request.snippet: -------------------------------------------------------------------------------- 1 | ```bash 2 | $ curl {{url}} {{options}} 3 | ``` -------------------------------------------------------------------------------- /spring-restdocs-docs/src/docs/antora/modules/tutorial/partials/nav-tutorial.adoc: -------------------------------------------------------------------------------- 1 | * xref:tutorial:index.adoc[] 2 | ** xref:tutorial:getting-started/index.adoc[] 3 | -------------------------------------------------------------------------------- /spring-restdocs-core/src/test/resources/custom-snippet-templates/markdown/curl-request-with-title.snippet: -------------------------------------------------------------------------------- 1 | {{title}} 2 | ```bash 3 | $ curl {{url}} {{options}} 4 | ``` -------------------------------------------------------------------------------- /spring-restdocs-asciidoctor/src/test/resources/sample-snippet.adoc: -------------------------------------------------------------------------------- 1 | [source,bash] 2 | ---- 3 | $ curl 'http://localhost:8080/' -i -H 'Accept: application/hal+json' 4 | ---- -------------------------------------------------------------------------------- /spring-restdocs-docs/src/docs/antora/modules/tutorial/pages/index.adoc: -------------------------------------------------------------------------------- 1 | = Tutorials 2 | 3 | This section provides tutorials to help you begin to use Spring REST Docs. 4 | -------------------------------------------------------------------------------- /spring-restdocs-asciidoctor/src/test/resources/operations/missing-operation.html: -------------------------------------------------------------------------------- 1 |
No snippets found for operation::missing-operation
3 |Snippet missing-snippet not found for operation::some-operation
6 |$ curl 'http://localhost:8080/' -i
6 | $ curl 'http://localhost:8080/' -i
7 | mycustomsnippet-äöü
7 | mycustomsnippet-äöü
7 | $ curl 'http://localhost:8080/' -i
7 | $ curl 'http://localhost:8080/' -i
7 | GET / HTTP/1.1
17 | Host: localhost:8080
18 | Alpha
5 |Bravo
13 |$ curl 'http://localhost:8080/' -i
19 | | Path | 13 |Type | 14 |Description | 15 |
|---|---|---|
|
20 |
|
21 | one |
22 |
|
25 |
|
26 | two |
27 |
|
30 |
|
31 | three |
32 |
34 | * A snippet test method can inject the following types: 35 | *