/** * Find an {@link Employee}'s {@link Manager} based upon employee id. Turn it into a context-based link. * * @param id * @return */ @GetMapping(value = "/managers/{id}/employees", produces = MediaTypes.HAL_JSON_VALUE) public ResponseEntity<Resources<Resource<Employee>>> findEmployees(@PathVariable long id) { return ResponseEntity.ok( assembler.toResources(repository.findByManagerId(id))); }
@PostMapping("/employees") public ResponseEntity<Resource<Employee>> newEmployee(@RequestBody Employee employee) { Employee savedEmployee = repository.save(employee); return ResponseEntity .created(savedEmployee.getId() .map(id -> linkTo(methodOn(EmployeeController.class).findOne(id)).toUri()) .orElseThrow(() -> new RuntimeException("Failed to create for some reason"))) .body(assembler.toResource(savedEmployee)); }
@PostMapping("/employees") public ResponseEntity<Resource<Employee>> newEmployee(@RequestBody Employee employee) { Employee savedEmployee = repository.save(employee); return savedEmployee.getId() .map(id -> ResponseEntity .created(linkTo(methodOn(EmployeeController.class).findOne(id)).toUri()) .body(assembler.toResource(savedEmployee))) .orElse(ResponseEntity.notFound().build()); }
@GetMapping(value = "/employees", produces = MediaTypes.HAL_JSON_VALUE) public Resources<Resource<Employee>> findAll() { return assembler.toResources(repository.findAll()); }
@GetMapping(value = "/employees", produces = MediaTypes.HAL_JSON_VALUE) public Resources<Resource<Employee>> findAll() { return assembler.toResources(repository.findAll()); }
/** * Look up all employees, and transform them into a REST collection resource using * {@link EmployeeResourceAssembler#toResources(Iterable)}. Then return them through * Spring Web's {@link ResponseEntity} fluent API. * * NOTE: cURL will fetch things as HAL JSON directly, but browsers issue a different * default accept header, which allows XML to get requested first, so "produces" * forces it to HAL JSON for all clients. */ @GetMapping(value = "/employees", produces = MediaTypes.HAL_JSON_VALUE) public ResponseEntity<Resources<Resource<Employee>>> findAll() { return ResponseEntity.ok( assembler.toResources(repository.findAll())); }
/** * Look up all employees, and transform them into a REST collection resource using * {@link EmployeeResourceAssembler#toResources(Iterable)}. Then return them through * Spring Web's {@link ResponseEntity} fluent API. * * NOTE: cURL will fetch things as HAL JSON directly, but browsers issue a different * default accept header, which allows XML to get requested first, so "produces" * forces it to HAL JSON for all clients. */ @GetMapping(value = "/employees", produces = MediaTypes.HAL_JSON_VALUE) public ResponseEntity<Resources<Resource<Employee>>> findAll() { return ResponseEntity.ok( assembler.toResources(repository.findAll())); }