Mam aplikację rozruchu sprężyny, które mają kontroler MVC wiosny. Próbuję wersji mojej api odpoczynku za pomocą nagłówka Accept.Spring MVC controller versioning
Poniżej jak mój kontroler wygląda
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);
}
niezależnie od wersji, że jestem przechodzącej w nagłówku Accept podczas wywoływania funkcji API zawsze metoda „getByappleId” nazywa, stąd tylko wersja 1 odpowiedź jest zwracany .
Czy coś jest nie tak z moim kontrolerem?
Wygląda Accept-params w Zebrane nagłówek nie jest używany przez wiosnę . –
Możliwy duplikat http://stackoverflow.com/questions/34425316/spring-requestmapping-header-with-equals – heenenee
off topic nie używaj System.out użytkowania rejestratora w miarę możliwości –