2017-03-26 47 views
0

Im SpringBoot應用程序有一個REST控制器可處理多個案例,其中一個案例必須轉發給另一個控制器。Spring Response實體和轉發

@PutMapping(
     value = "/rest/endpoint", 
     consumes = MediaType.APPLICATION_JSON_VALUE, 
     produces = MediaType.APPLICATION_JSON_VALUE) 
@ResponseBody 
public ResponseEntity<CustomObject> doPut(@RequestBody myDataToBeHandled) { 

    if(caseAHolds(myDataToBeHandled){ 
     return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST); 
    } 
    else if(caseBHolds(myDataToBeHandled){ 
     return new ResponseEntity<>(null, HttpStatus.OK); 
    } 
    else if(caseCHolds(myDataToBeHandled){ 
    // Redirect here 
    } 

} 

我看過an example關於如何做到這一點的重定向?

回答

0

您需要設置Location標頭,如爲了將請求重定向到另一個URL顯示在下面,如下所示:

@PutMapping(
     value = "/rest/endpoint", 
     consumes = MediaType.APPLICATION_JSON_VALUE, 
     produces = MediaType.APPLICATION_JSON_VALUE) 
@ResponseBody 
public ResponseEntity<CustomObject> doPut(@RequestBody myDataToBeHandled) { 

    if(caseAHolds(myDataToBeHandled){ 
     return new ResponseEntity<>(null, HttpStatus.BAD_REQUEST); 
    } 
    else if(caseBHolds(myDataToBeHandled){ 
     return new ResponseEntity<>(null, HttpStatus.OK); 
    } 
    else if(caseCHolds(myDataToBeHandled){ 
    // Redirect here 
    HttpHeaders headers = new HttpHeaders(); 
    headers.add("Location", "ADD_URL_HERE"); 
    return new ResponseEntity<CustomObject>(headers, HttpStatus. OK); 
    } 
}