Ну, во-первых, вы можете использовать django-поршень , как уже упоминалось @Tudorizer.
Но опять же, как я понимаю (и я могу ошибаться!), REST - это скорее набор принципов проектирования, а не конкретный API. По сути, это говорит о том, что взаимодействие с вашим сервисом должно основываться не на «вещах, которые вы можете делать» (типичные методы в стиле RPC), а на «вещах, на которые вы можете действовать предсказуемым образом, организованных определенным образом» ( сущность 'ресурс' и глаголы http).
При этом вам не нужно ничего дополнительного для написания сервисов в стиле REST с использованием django.
Учтите следующее:
# urlconf
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('',
url(r'^tickets$', 'myapp.views.tickets', name='tickets'),
url(r'^ticket/(?P<id>\d+)$', 'myapp.views.tickets', name='ticket'),
url(r'^ticket$', 'myapp.views.tickets', name='ticket'),
)
# views
def tickets(request):
tickets = Ticket.objects.all()
return render_to_response('tickets.html', {'tickets':tickets})
def ticket(request, id=None):
if id is not None:
ticket = get_object_or_404(Ticket, id=id)
if request.method == 'POST':
# create or update ticket here
else:
# just render the ticket (GET)
...
... и т. Д.
Важно то, как ваш сервис предоставляется его пользователю, а не библиотеке / инструментарию / инфраструктуре, которые он использует.