summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/general/routing.rst
diff options
context:
space:
mode:
authorAndrey Andreev <narf@devilix.net>2013-11-11 12:48:45 +0100
committerAndrey Andreev <narf@devilix.net>2013-11-11 12:48:45 +0100
commitaf709d6ebe6ca75913d7a9eedb4fdcd76be45c50 (patch)
tree8b0094b140830bbf9baa13529ceed77658b12a61 /user_guide_src/source/general/routing.rst
parent0949b36c3ebb10732223ddc890e1a41c015aa086 (diff)
parent0b58b3cad456efc5ecce89f622876c6b715439c2 (diff)
Merge pull request #2712 from pveyes/develop
Enable HTTP Verb in Routing
Diffstat (limited to 'user_guide_src/source/general/routing.rst')
-rw-r--r--user_guide_src/source/general/routing.rst36
1 files changed, 36 insertions, 0 deletions
diff --git a/user_guide_src/source/general/routing.rst b/user_guide_src/source/general/routing.rst
index 5520f59fe..6495f1ad4 100644
--- a/user_guide_src/source/general/routing.rst
+++ b/user_guide_src/source/general/routing.rst
@@ -142,6 +142,42 @@ routing rules to process the back-references. Example::
return 'catalog/product_edit/' . strtolower($product_type) . '/' . $id;
};
+Using HTTP Verb in Routes
+=========================
+
+If you prefer you can use HTTP Verb (or method) to define your routing rules.
+This is particularly useful when building RESTful application. You can use standard HTTP
+Verb (GET, PUT, POST, DELETE) or custom HTTP Verb (e.g: PURGE). HTTP Verb rule is case
+insensitive. All you need to do is add array index using HTTP Verb rule. Example::
+
+ $route['products']['put'] = 'product/insert';
+
+In the above example, a PUT request to URI "products" would call the "product" controller
+class and "insert" method
+
+::
+
+ $route['products/(:num)']['DELETE'] = 'product/delete/$1';
+
+A DELETE request to URL with "products" as first segment and a number in the second will be
+remapped to the "product" class and "delete" method passing in the match as a variable to
+the method.
+
+::
+
+ $route['products/([a-z]+)/(\d+)']['get'] = 'product/$1/$2';
+
+A GET request to a URI similar to products/shirts/123 would call the "product" controller
+class and "shirt" method with number as method parameter
+
+Using HTTP Verb is optional, so if you want any HTTP Verb to be handled in one rule
+You could just write your routing rule without HTTP Verb. Example::
+
+ $route['product'] = 'product';
+
+This way, all incoming request using any HTTP method containing the word "product"
+in the first segment will be remapped to "product" class
+
Reserved Routes
===============