Tôi có một ứng dụng khởi động mùa xuân, có bộ điều khiển MVC lò xo. Tôi đang cố gắng để phiên bản phần còn lại của tôi api bằng cách sử dụng chấp nhận tiêu đề.Bộ điều khiển MVC mùa xuân versioning
Sau đây là cách điều khiển của tôi trông giống như
RestController
@RequestMapping(value = "/private/")
public class AppleController {
private final AppleService appleService;
public AppleController(AppleService appleService) {
this.appleService = appleService;
}
@GetMapping(value = "apples/{id}", produces = "application/json; v=1.0",
headers = "Accept=application/json; v=1.0")
public ResponseEntity getByappleId(@PathVariable("id") Long appleId) {
System.out.println("version1");
GetByappleIdResponse response = appleService.findByappleId(appleId);
return new ResponseEntity<>(response, HttpStatus.OK);
}
@GetMapping(value = "apples/{id}", produces = "application/json; v=2.0",
headers = "Accept=application/json; v=2.0")
public ResponseEntity getByappleId2(@PathVariable("id") Long appleId) {
System.out.println("version2");
GetByappleIdResponse response = appleService.findByappleId2(appleId);
return new ResponseEntity<>(response, HttpStatus.OK);
}
Không phân biệt phiên bản mà tôi đang đi qua trong Chấp nhận tiêu đề khi gọi API luôn "getByappleId" phương pháp được gọi là, do đó chỉ có phiên bản 1 phản ứng được trả về .
Có điều gì sai trong bộ điều khiển của tôi không?
có vẻ như chấp nhận-params trong Chấp nhận tiêu đề không được sử dụng vào mùa xuân . –
Có thể trùng lặp của http://stackoverflow.com/questions/34425316/spring-requestmapping-header-with-equals – heenenee
tắt chủ đề không sử dụng system.out sử dụng logger bất cứ khi nào có thể –