Skip to content

Instantly share code, notes, and snippets.

@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class UserControllerDocumentation {
@Rule
public final RestDocumentation restDocumentation = new RestDocumentation(
"target/generated-snippets"
);
@ssouris
ssouris / pom.xml
Created February 1, 2016 16:31
Spring Restdocs Mockmvc dependency
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-mockmvc</artifactId>
<scope>test</scope>
</dependency>
@ssouris
ssouris / pom.xml
Created February 1, 2016 16:32
set snippetsDirectory property
<properties>
<snippetsDirectory>${project.build.directory}/generated-snippets</snippetsDirectory>
</properties>
@ssouris
ssouris / pom.xml
Created February 1, 2016 16:33
Configure Documentation tests + asciidoctor
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Documentation.java</include>
</includes>
</configuration>
</plugin>
<plugin>
@ssouris
ssouris / UserControllerDocumentation.java
Created February 1, 2016 16:35
Set up MockMVC to work with Asciidoctor
@Rule
public final RestDocumentation restDocumentation = new RestDocumentation(
"target/generated-snippets"
);
@Autowired
private WebApplicationContext context;
private MockMvc mockMvc;
[[resources-get-users]]
== Listing users
A `GET` request will list all of the users.
=== Response structure
include::{snippets}/getUsers/response-fields.adoc[]
=== Example request
@ssouris
ssouris / pom.xml
Created February 1, 2016 16:46
Configure Spring Boot to pick up static files
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class UserControllerDocumentation {
// setup MockMVC, RestDocumentation etc omitted
/**
* All documentation production happens here.
*
/**
* Simple CRUD RESTful controller for {@linkplain User} object
*/
@RestController
@RequestMapping("/api/v1/users")
public class UserController {
private final UserDatastore userDatastore;
@Autowired
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.getForEntity(baseUrl, String.class);
ResponseEntity<String> responseExchange = restTemplate.exchange(baseUrl, HttpMethod.GET, null, String.class);
URI uri = new URI(baseUrl);
ResponseEntity<String> responseURI = restTemplate.getForEntity(uri, String.class);
ResponseEntity<String> responseExchangeURI = restTemplate.exchange(uri, HttpMethod.GET, null, String.class);