Api¶
In terms of a REST-style architecture, the “api” is a collection of resources.
In Tastypie, the Api
gathers together the Resources
& provides a nice
way to use them as a set. It handles many of the URLconf details for you,
provides a helpful “top-level” view to show what endpoints are available &
some extra URL resolution juice.
Quick Start¶
A sample api definition might look something like (usually located in a URLconf):
from tastypie.api import Api
from myapp.api.resources import UserResource, EntryResource
v1_api = Api(api_name='v1')
v1_api.register(UserResource())
v1_api.register(EntryResource())
# Standard bits...
urlpatterns = patterns('',
(r'^api/', include(v1_api.urls)),
)
Api
Methods¶
Implements a registry to tie together the various resources that make up an API.
Especially useful for navigation, HATEOAS and for providing multiple versions of your API.
Optionally supplying api_name
allows you to name the API. Generally,
this is done with version numbers (i.e. v1
, v2
, etc.) but can
be named any string.
register
¶
-
Api.register(self, resource, canonical=True):
Registers an instance of a Resource
subclass with the API.
Optionally accept a canonical
argument, which indicates that the
resource being registered is the canonical variant. Defaults to
True
.
canonical_resource_for
¶
-
Api.canonical_resource_for(self, resource_name):
Returns the canonical resource for a given resource_name
.
override_urls
¶
-
Api.override_urls(self):
Deprecated. Will be removed by v1.0.0. Please use Api.prepend_urls
instead.
prepend_urls
¶
-
Api.prepend_urls(self):
A hook for adding your own URLs or matching before the default URLs. Useful for adding custom endpoints or overriding the built-in ones.
Should return a list of individual URLconf lines (NOT wrapped in
patterns
).
urls
¶
-
Api.urls(self):
Property
Provides URLconf details for the Api
and all registered
Resources
beneath it.
top_level
¶
-
Api.top_level(self, request, api_name=None):
A view that returns a serialized list of all resources registers
to the Api
. Useful for discovery.