X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=provider%2Fsrc%2Fmain%2Fjava%2Fio%2Fpactflow%2Fexample%2Fsirenprovider%2Fcontrollers%2FOrderController.java;h=b2f1d7f922e8b882c1b321da7cdd4bce5d727082;hb=ecaa238c0252d9057e4fbccfc4f16d3d2e37ef2b;hp=72cf97335a53412029a7731867d2d69df317d49d;hpb=9777f26defdb7706cf488160af693766954a1bb5;p=demos%2Fexample-siren diff --git a/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/OrderController.java b/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/OrderController.java index 72cf973..b2f1d7f 100644 --- a/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/OrderController.java +++ b/provider/src/main/java/io/pactflow/example/sirenprovider/controllers/OrderController.java @@ -11,40 +11,44 @@ import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Random; + import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.afford; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; @RestController @ExposesResourceFor(Order.class) +@RequestMapping(value = "/orders") public class OrderController { - @GetMapping("/orders") - public RepresentationModel orders() { - Order order = new Order(1234L); + @GetMapping + public ResponseEntity> orders() { + Order order = new Order(new Random().nextLong()); Link selfLink = linkTo(methodOn(OrderController.class).order(order.getId())).withSelfRel() .andAffordance(afford(methodOn(OrderController.class).update(order.getId(), null))) .andAffordance(afford(methodOn(OrderController.class).delete(order.getId()))); EntityModel model = EntityModel.of(order, selfLink); RepresentationModel orders = CollectionModel.of(model); orders.add(linkTo(methodOn(OrderController.class).orders()).withSelfRel()); - return orders; + return ResponseEntity.ok(orders); } - @GetMapping("/orders/{id}") - public EntityModel order(@PathVariable(value = "id", required = true) Long id) { + @GetMapping(value = "/{id}") + public ResponseEntity> order(@PathVariable(value = "id", required = true) Long id) { Order order = new Order(id); Link selfLink = linkTo(methodOn(OrderController.class).order(order.getId())).withSelfRel() .andAffordance(afford(methodOn(OrderController.class).update(order.getId(), null))) .andAffordance(afford(methodOn(OrderController.class).delete(order.getId()))); EntityModel model = EntityModel.of(order, selfLink); - return model; + return ResponseEntity.ok(model); } - @PutMapping("/orders/{id}") - public EntityModel update(Long id, Order order) { + @PutMapping("/{id}") + public EntityModel update(@PathVariable(value = "id", required = true) Long id, Order order) { Link selfLink = linkTo(methodOn(OrderController.class).order(order.getId())).withSelfRel() .andAffordance(afford(methodOn(OrderController.class).update(order.getId(), null))) .andAffordance(afford(methodOn(OrderController.class).delete(order.getId()))); @@ -52,9 +56,8 @@ public class OrderController { return model; } - @DeleteMapping("/order/{id}") - public ResponseEntity delete(Long id) { + @DeleteMapping("/{id}") + public ResponseEntity delete(@PathVariable(value = "id", required = true) Long id) { return ResponseEntity.ok().build(); } - }