From 71a32e4e2453b8e6dec922e88180960a3a5b9aec Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Fri, 16 Jul 2010 14:23:03 -0700 Subject: POST requests create a new entity and should result in a 201 Created reply with a Location field that matches the URL of the newly created resource. Fixes ticket #1178. --- modules/rest/controllers/rest.php | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'modules/rest') diff --git a/modules/rest/controllers/rest.php b/modules/rest/controllers/rest.php index 293252ef..bf2f0a54 100644 --- a/modules/rest/controllers/rest.php +++ b/modules/rest/controllers/rest.php @@ -81,6 +81,11 @@ class Rest_Controller extends Controller { } $response = call_user_func(array($handler_class, $handler_method), $request); + if ($handler_method == "post") { + // post methods must return a response containing a URI. + header("HTTP/1.1 201 Created"); + header("Location: {$response['url']}"); + } rest::reply($response); } catch (ORM_Validation_Exception $e) { // Note: this is totally insufficient because it doesn't take into account localization. We -- cgit v1.2.3