Простой RESTFUL пример клиент / сервер в Python? - PullRequest
5 голосов
/ 05 сентября 2010

Есть ли онлайн-ресурс, показывающий, как написать простой (но надежный) RESTFUL сервер / клиент (желательно с аутентификацией), написанный на Python?

Цель состоит в том, чтобы иметь возможность писать свои собственные легковесные RESTFUL-сервисы, не будучи обремененным целой веб-структурой. Сказав это, если есть способ сделать это (то есть написать сервисы RESFUL) легким способом, используя Django, я был бы одинаково заинтересован.

На самом деле, если говорить об этом, я могу даже ПРЕДПОЧИТАТЬ решение на основе Django (при условии, что оно достаточно легкое - то есть не вводит в действие весь фреймворк), так как я смогу использовать только те компоненты, которые мне нужны , для обеспечения лучшей безопасности / доступа к услугам.

Ответы [ 2 ]

5 голосов
/ 05 сентября 2010

Ну, во-первых, вы можете использовать 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)
    ...

... и т. Д.

Важно то, как ваш сервис предоставляется его пользователю, а не библиотеке / инструментарию / инфраструктуре, которые он использует.

2 голосов
/ 05 сентября 2010

Это выглядит многообещающе. http://parand.com/say/index.php/2009/04/30/django-piston-rest-framework-for-django/ Я использовал это раньше, и это довольно изящно. Сказав это, это, кажется, не поддерживается в последнее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...