aboutsummaryrefslogtreecommitdiffstats
path: root/docs/api-guide/routers.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/api-guide/routers.md')
-rw-r--r--docs/api-guide/routers.md49
1 files changed, 39 insertions, 10 deletions
diff --git a/docs/api-guide/routers.md b/docs/api-guide/routers.md
index dbb352fe..7411bd7b 100644
--- a/docs/api-guide/routers.md
+++ b/docs/api-guide/routers.md
@@ -8,20 +8,49 @@
Some Web frameworks such as Rails provide functionality for automatically determining how the URLs for an application should be mapped to the logic that deals with handling incoming requests.
-Conversely, Django stops short of automatically generating URLs, and requires you to explicitly manage your URL configuration.
+REST framework adds support for automatic URL routing to Django, and provides you with a simple, quick and consistent way of wiring your view logic to a set of URLs.
-REST framework adds support for automatic URL routing, which provides you with a simple, quick and consistent way of wiring your view logic to a set of URLs.
+## Usage
-# API Guide
-
-Routers provide a convenient and simple shortcut for wiring up your application's URLs.
+Here's an example of a simple URL conf, that uses `DefaultRouter`.
router = routers.DefaultRouter()
- router.register('^/', APIRoot, 'api-root')
- router.register('^users/', UserViewSet, 'user')
- router.register('^groups/', GroupViewSet, 'group')
- router.register('^accounts/', AccountViewSet, 'account')
+ router.register(r'users', UserViewSet, 'user')
+ router.register(r'accounts', AccountViewSet, 'account')
+ urlpatterns = router.urls
+
+# API Guide
+
+## SimpleRouter
+
+<table border=1>
+ <tr><th>URL Style</th><th>HTTP Method</th><th>Action</th><th>URL Name</th></tr>
+ <tr><td rowspan=2>{prefix}/</td><td>GET</td><td>list</td><td rowspan=2>{basename}-list</td></tr></tr>
+ <tr><td>POST</td><td>create</td></tr>
+ <tr><td rowspan=4>{prefix}/{lookup}/</td><td>GET</td><td>retrieve</td><td rowspan=4>{basename}-detail</td></tr></tr>
+ <tr><td>PUT</td><td>update</td></tr>
+ <tr><td>PATCH</td><td>partial_update</td></tr>
+ <tr><td>DELETE</td><td>destroy</td></tr>
+ <tr><td rowspan=2>{prefix}/{lookup}/{methodname}/</td><td>GET</td><td>@link decorated method</td><td rowspan=2>{basename}-{methodname}</td></tr>
+ <tr><td>POST</td><td>@action decorated method</td></tr>
+</table>
+
+## DefaultRouter
+
+<table border=1>
+ <tr><th>URL Style</th><th>HTTP Method</th><th>Action</th><th>URL Name</th></tr>
+ <tr><td>[.format]</td><td>GET</td><td>automatically generated root view</td><td>api-root</td></tr></tr>
+ <tr><td rowspan=2>{prefix}/[.format]</td><td>GET</td><td>list</td><td rowspan=2>{basename}-list</td></tr></tr>
+ <tr><td>POST</td><td>create</td></tr>
+ <tr><td rowspan=4>{prefix}/{lookup}/[.format]</td><td>GET</td><td>retrieve</td><td rowspan=4>{basename}-detail</td></tr></tr>
+ <tr><td>PUT</td><td>update</td></tr>
+ <tr><td>PATCH</td><td>partial_update</td></tr>
+ <tr><td>DELETE</td><td>destroy</td></tr>
+ <tr><td rowspan=2>{prefix}/{lookup}/{methodname}/[.format]</td><td>GET</td><td>@link decorated method</td><td rowspan=2>{basename}-{methodname}</td></tr>
+ <tr><td>POST</td><td>@action decorated method</td></tr>
+</table>
+
+# Custom Routers
- urlpatterns = router.urlpatterns
[cite]: http://guides.rubyonrails.org/routing.html \ No newline at end of file