REST: header Location after POST
authorGustavo Martin Morcuende <gu.martinm@gmail.com>
Thu, 5 Nov 2015 19:42:47 +0000 (20:42 +0100)
committerGustavo Martin Morcuende <gu.martinm@gmail.com>
Fri, 8 Jan 2016 21:46:16 +0000 (22:46 +0100)
SpringJava/REST/src/main/java/rest/CarController.java

index 87f4d01..e8d2f17 100644 (file)
@@ -5,8 +5,10 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
@@ -68,4 +70,13 @@ public class CarController {
 
         return new Car(counter.incrementAndGet(), String.format(template, id));
     }
+    
+    @RequestMapping(consumes = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
+    public ResponseEntity<Car> create() {
+       HttpHeaders headers = new HttpHeaders();
+       headers.add("Location", "/api/cars/" + 1);
+       
+        return new ResponseEntity<>(new Car(counter.incrementAndGet(), String.format(template, 1)), headers, HttpStatus.CREATED);
+    }
+
 }