groovy-spring-boot-restdocs-example
groovy-spring-boot-restdocs-example copied to clipboard
An example of spring rest docs using groovy, spring boot, and spock.
Groovy Spring Boot RESTdocs Example 
This project is an example of a groovy spring boot app with Spring RESTdocs added to the spock tests for the talk A Test-Driven Approach to Documenting RESTful APIs with Spring REST Docs as presented by Jennifer Strater.
The published docs from the example are available here.
Upcoming Presentations
You can see this talk at any of the following events:
| Venue | Date | City |
|---|---|---|
| Groovy Users of Minnesota | Feb 9, 2016 | Minneapolis, MN, USA |
| Object Partners | March 18, 2016 | Minneapolis, MN, USA |
| Twin Cities Code Camp | April 16, 2016 | Minneapolis, MN, USA |
| Gr8Conf EU | June 2-3, 2016 | Copenhagen, Denmark |
| Gr8Conf US | July 28, 2016 | Minneapolis, MN, USA |
| JFokus | Feb 8, 2017 | Stockholm, Sweden |
| Greach | March 31, 2017 | Madrid, Spain |
| Code Europe | April 26, 2017 | Kraków, Pl |
| API Conference DE | September 20, 2017 | Berlin, DE |
| Spring One Platform | December 7, 2017 | San Francisco, CA, USA |
| Warsaw JUG | June 26, 2018 | Warsaw, Poland |
| JavaLand | March 19 - 21, 2019 | Phantasialand, Brühl, DE |
Slides for previous presentations are available below:
- 9 Feb 2016 (GUM)
- 18 March 2016 (OPI)
- 16 April 2016 (TCCC)
- June 2016 (Gr8Conf EU)
- July 2016 (Gr8Conf US)
- Feb 2017 (JFokus)
- March 2017 (Greach)
- April 2017 (Code Europe)
- September 2017 (ApiConf DE)
- December 2017 (SpringOne Platform)
- June 2018 (Warsaw JUG)
- March 2019 (Javaland)
You can build and run this sample using Gradle:
$ gradle build bootRun
Or the Gradle Wrapper:
$ ./gradlew build bootRun
Then access the app via a browser (or curl) on http://localhost:8080/html5/index.html to see the docs.
** It is very important to note that the project must be built before trying to run the project. Otherwise, the docs will not show up! **
Requirements
Java Version 8-10
MongoDB (use default ports locally or run via Docker)