Review this generated Spring Boot controller before it is deployed.
Create and list orders only for the authenticated tenant, validate input, commit the order and event reliably under retries, and return bounded public representations.
Java
@RestController
@RequestMapping("/tenants")
class OrderController {
@Autowired
OrderRepository orders;
@Autowired
EventPublisher events;
@PostMapping("/{tenantId}/orders")
Order create(@PathVariable String tenantId,
@RequestBody Map<String, Object> body) {
var order = new Order();
order.setTenantId(tenantId);
order.setSku((String) body.get("sku"));
order.setQuantity(Integer.parseInt(body.get("quantity").toString()));
orders.save(order);
events.publish("order.created", order);
return order;
}
@GetMapping("/{tenantId}/orders")
List<Order> list(@PathVariable String tenantId) {
return orders.findAll();
}
}
generated code is illustrative, not from any one model