Документация кажется очень четкой https://bitbucket.org/jespern/django-piston/wiki/Documentation#!resources
from piston.handler import BaseHandler
from myapp.models import Blogpost
class BlogpostHandler(BaseHandler):
allowed_methods = ('GET',)
model = Blogpost
def read(self, request, post_slug):
...
Поршень позволяет вам сопоставлять ресурсы с моделями, и, таким образом, он сделает для вас большую работу.
Ресурс может быть просто классом, но обычно вы хотите определить по крайней мере 1 из 4 методов:
read
вызывается для запросов GET и никогда не должен изменять данные (идемпотент.)
create
вызывается на POST и создает новые объекты и должен возвращать их (или rc.CREATED
.)
update
вызывается на PUT и должен обновлять существующий продукти вернуть их (или rc.ALL_OK
.)
delete
вызывается при УДАЛЕНИИ и должен удалить существующий объект.Ничего не должно возвращать, просто rc.DELETED
.
Также https://bitbucket.org/jespern/django-piston/wiki/Documentation#!mapping-urls
В urls.py:
from django.conf.urls.defaults import *
from piston.resource import Resource
from mysite.myapp.api.handlers import BlogpostHandler
blogpost_handler = Resource(BlogpostHandler)
urlpatterns = patterns('',
url(r'^blogpost/(?P<post_slug>[^/]+)/', blogpost_handler),
url(r'^blogposts/', blogpost_handler),
)