130 lines
6.1 KiB
Plaintext
130 lines
6.1 KiB
Plaintext
[[documentation]]
|
|
= Spring Cloud Contract Documentation
|
|
|
|
This section provides a brief overview of {project-full-name} reference documentation. It serves
|
|
as a map for the rest of the document.
|
|
|
|
|
|
|
|
[[contract-documentation-about]]
|
|
== About the Documentation
|
|
|
|
The {project-full-name} reference guide is available as
|
|
|
|
* {docs-url}/reference/html[Multi-page HTML]
|
|
* {docs-url}/reference/htmlsingle[Single-page HTML]
|
|
* {docs-url}/reference/pdf/{project-name}.pdf[PDF]
|
|
|
|
Copies of this document may be made for your own use and for distribution to others,
|
|
provided that you do not charge any fee for such copies and further provided that each
|
|
copy contains this Copyright Notice, whether distributed in print or electronically.
|
|
|
|
|
|
|
|
[[documentation-getting-help]]
|
|
== Getting Help
|
|
If you have trouble with {project-full-name}, we would like to help.
|
|
|
|
* Try the xref:howto.adoc[How-to documents]. They provide solutions to the most
|
|
common questions.
|
|
* Learn the {project-full-name} basics. If you are
|
|
starting out with {project-full-name}, try one of the https://spring.io/guides[guides].
|
|
* Ask a question. We monitor https://stackoverflow.com[stackoverflow.com] for questions
|
|
tagged with https://stackoverflow.com/tags/{project-name}[`{project-name}`].
|
|
* Report bugs with {project-full-name} at https://github.com/spring-cloud/{project-name}/issues.
|
|
* Chat with us at http://https://gitter.im/spring-cloud/{project-name}[{project-full-name} Gitter]
|
|
|
|
NOTE: All of {project-full-name} is open source, including the documentation. If you find
|
|
problems with the docs or if you want to improve them, please {github-code}[get
|
|
involved].
|
|
|
|
|
|
[[contract-documentation-first-steps]]
|
|
== First Steps
|
|
If you are getting started with {project-full-name} or 'Spring' in general, start with
|
|
xref:getting-started.adoc[the following topics]:
|
|
|
|
* *From scratch:*
|
|
<<getting-started.adoc#getting-started-introducing-{project-name}, Overview>> |
|
|
xref:getting-started/three-second-tour.adoc[Three-second Tour] |
|
|
xref:getting-started/first-application.adoc[First application]
|
|
* *Tutorial:*
|
|
xref:getting-started/cdc.adoc[Introduction] |
|
|
<<getting-started.adoc#consumer-side-loan-issuance, Consumer, Part 1>> |
|
|
<<getting-started.adoc#producer-side-fraud-detection-server, Producer>> |
|
|
xref:getting-started/cdc.adoc#getting-started-cdc-consumer-final[Consumer, Part 2]
|
|
|
|
|
|
|
|
[[working-with-{project-full-name}]]
|
|
== Working with {project-full-name}
|
|
Ready to actually start using {project-full-name}? xref:using.adoc[We have you covered]
|
|
:
|
|
|
|
* *Provider contract testing:*
|
|
|
|
** xref:using.adoc#flows-provider-nexus[Provider contract testing with stubs in Nexus or Artifactory]
|
|
** xref:using.adoc#flows-provider-git[Provider contract testing with stubs in Git]
|
|
** xref:using.adoc#flows-provider-non-spring[Provider contract testing with stubs in Artifactory for a non-Spring application]
|
|
** xref:using.adoc#flows-provider-non-jvm[Provider contract testing with stubs in Artifactory in non JVM world]
|
|
** xref:using.adoc#flows-provider-rest-docs[Provider contract testing with REST Docs and stubs in Nexus / Artifactory]
|
|
|
|
* *Consumer-Driven contract testing:*
|
|
** xref:using.adoc#flows-cdc-contracts-producer[Consumer Driven Contracts with contracts on the producer side]
|
|
** xref:using.adoc#flows-cdc-contracts-external[Consumer Driven Contracts with contracts in external repo]
|
|
** xref:using.adoc#flows-cdc-contracts-stubs-git[Consumer Driven Contracts with contracts on the producer side, pushed to git]
|
|
|
|
TIP: We talk about *Provider Contracts* when it is the producer of the API that defines the contracts and
|
|
publishes it for all its consumers to use. This approach is useful for producers that cannot
|
|
directly collaborate with their consumers -- for example, when there are too many consumers or
|
|
the consumers are external (do not work within the same company).
|
|
|
|
TIP: We use the term, *Consumer-Driven Contracts*, to refer to workflows where the consumers of an API
|
|
play a vital role in the process of creating the contracts. We recommended this approach, because it is easy
|
|
to implement when both producer and consumer teams work for the same organizations and the number
|
|
of consumers is not extremely large.
|
|
|
|
[[learning-about-{project-full-name}-features]]
|
|
== Learning about {project-full-name} Features
|
|
Need more details about {project-full-name}'s core features?
|
|
xref:project-features.adoc[The following content is for you]:
|
|
|
|
* *Core Features:*
|
|
xref:_project-features-contract.adoc[Contract DSL] |
|
|
xref:_project-features-contract/common-top-elements.adoc#features-http[Contracts for HTTP] |
|
|
xref:_project-features-messaging.adoc[Contracts for Messaging]
|
|
* *Integrations:*
|
|
xref:_project-features-flows/jax-rs.adoc[JAX-RS] |
|
|
xref:_project-features-flows/context-paths.adoc[Context Paths] |
|
|
xref:_project-features-flows/rest-docs.adoc[RESTDocs]
|
|
* *Modules:*
|
|
xref:_project-features-stubrunner.adoc[Stub Runner] |
|
|
xref:_project-features-wiremock.adoc[WireMock]
|
|
// TODO: links don't work in "build Tools" section
|
|
* *Build Tools:*
|
|
link:maven-project.html[Contract Verifier - Maven] |
|
|
link:gradle-project.html[Contract Verifier - Gradle] |
|
|
link:docker-project.html[Docker]
|
|
|
|
|
|
[[advanced-topics]]
|
|
== Advanced Topics
|
|
Finally, we have a few topics for more advanced users:
|
|
|
|
* *Customizing the DSL:*
|
|
<<advanced.adoc#contract-dsl-customization, DSL Customization>> |
|
|
<<advanced.adoc#contract-dsl-extending-common-jar, Common JAR>> |
|
|
<<advanced.adoc#contract-dsl-test-dep, Test Dependency>> |
|
|
<<advanced.adoc#contract-dsl-plugin-dep, Plugin Dependency>> |
|
|
<<advanced.adoc#contract-dsl-referencing, Referencing the DSL>>
|
|
* *Customizing WireMock:*
|
|
xref:advanced.adoc#customization-wiremock-extension[Extensions] |
|
|
xref:advanced.adoc#customization-wiremock-configuration[Configuration]
|
|
* *Customizing {project-full-name}:*
|
|
<<advanced.adoc#contract-dsl-pluggable-architecture, Pluggable Architecture>> |
|
|
<<advanced.adoc#contract-dsl-custom-contract-converter, Contract Converter>> |
|
|
<<advanced.adoc#contract-dsl-custom-test-generator, Test Generator>> |
|
|
<<advanced.adoc#contract-dsl-custom-stub-generator, Stub Generator>> |
|
|
<<advanced.adoc#contract-dsl-custom-stub-runner, Stub Runner>> |
|
|
<<advanced.adoc#contract-dsl-custom-stub-downloader, Stub Downloader>>
|