Polishing
This commit is contained in:
@@ -25,7 +25,7 @@ import org.springframework.stereotype.Component;
|
||||
* @author Greg Turnquist
|
||||
*/
|
||||
@Component
|
||||
public class DatabaseLoader {
|
||||
class DatabaseLoader {
|
||||
|
||||
/**
|
||||
* Use Spring to inject a {@link EmployeeRepository} that can then load data. Since this will run
|
||||
|
||||
@@ -48,7 +48,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class Employee implements Identifiable<Long> {
|
||||
class Employee implements Identifiable<Long> {
|
||||
|
||||
@Id @GeneratedValue
|
||||
private Long id;
|
||||
|
||||
@@ -32,13 +32,12 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
* @author Greg Turnquist
|
||||
*/
|
||||
@RestController
|
||||
public class EmployeeController {
|
||||
class EmployeeController {
|
||||
|
||||
private final EmployeeRepository repository;
|
||||
private final EmployeeResourceAssembler assembler;
|
||||
|
||||
public EmployeeController(EmployeeRepository repository,
|
||||
EmployeeResourceAssembler assembler) {
|
||||
EmployeeController(EmployeeRepository repository, EmployeeResourceAssembler assembler) {
|
||||
|
||||
this.repository = repository;
|
||||
this.assembler = assembler;
|
||||
@@ -61,18 +60,18 @@ public class EmployeeController {
|
||||
}
|
||||
|
||||
/**
|
||||
* Look up a single {@link Employee} and transform into a REST resource using
|
||||
* Look up a single {@link Employee} and transform it into a REST resource using
|
||||
* {@link EmployeeResourceAssembler#toResource(Object)}. Then return it through
|
||||
* Spring Web's {@link ResponseEntity} fluent API.
|
||||
*
|
||||
* See {@link #findAll()} to explain "produces".
|
||||
* See {@link #findAll()} to explain {@link GetMapping}'s "produces" argument.
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
@GetMapping(value = "/employees/{id}", produces = MediaTypes.HAL_JSON_VALUE)
|
||||
public ResponseEntity<Resource<Employee>> findOne(@PathVariable String id) {
|
||||
public ResponseEntity<Resource<Employee>> findOne(@PathVariable long id) {
|
||||
return ResponseEntity.ok(
|
||||
assembler.toResource(repository.findOne(Long.valueOf(id))));
|
||||
assembler.toResource(repository.findOne(id)));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,7 +18,9 @@ package org.springframework.hateoas.examples;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
|
||||
/**
|
||||
* A simple Spring Data {@link CrudRepository} for storing {@link Employee}s.
|
||||
*
|
||||
* @author Greg Turnquist
|
||||
*/
|
||||
public interface EmployeeRepository extends CrudRepository<Employee, Long> {
|
||||
interface EmployeeRepository extends CrudRepository<Employee, Long> {
|
||||
}
|
||||
|
||||
@@ -22,14 +22,14 @@ import org.springframework.stereotype.Component;
|
||||
* @author Greg Turnquist
|
||||
*/
|
||||
@Component
|
||||
public class EmployeeResourceAssembler extends SimpleIdentifiableResourceAssembler<Employee> {
|
||||
class EmployeeResourceAssembler extends SimpleIdentifiableResourceAssembler<Employee> {
|
||||
|
||||
/**
|
||||
* Link the {@link Employee} domain type to the {@link EmployeeController} using this
|
||||
* {@link SimpleIdentifiableResourceAssembler} in order to generate both {@link org.springframework.hateoas.Resource}
|
||||
* and {@link org.springframework.hateoas.Resources}.
|
||||
*/
|
||||
public EmployeeResourceAssembler() {
|
||||
EmployeeResourceAssembler() {
|
||||
super(EmployeeController.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,8 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
|
||||
/**
|
||||
* How to test the hypermedia-based {@link EmployeeController} with everything else mocked out.
|
||||
*
|
||||
* @author Greg Turnquist
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@@ -50,7 +52,7 @@ public class EmployeeControllerTests {
|
||||
private EmployeeRepository repository;
|
||||
|
||||
@Test
|
||||
public void noop() throws Exception {
|
||||
public void getShouldFetchAHalDocument() throws Exception {
|
||||
|
||||
given(repository.findAll()).willReturn(
|
||||
Arrays.asList(
|
||||
|
||||
Reference in New Issue
Block a user